Merge branch 'develop' into adiDev

This commit is contained in:
AdisakKanthawilang 2024-04-17 10:21:32 +07:00
commit bee26f07a9
26 changed files with 2236 additions and 281 deletions

File diff suppressed because it is too large Load diff

View file

@ -185,6 +185,7 @@ export class DevelopmentOfficerHistoryController extends Controller {
@Query("pageSize") pageSize: number = 10,
@Query("keyword") keyword?: string,
@Query("year") year?: number,
@Query("root") root?: number,
) {
const type = "OFFICER";
const [development, total] = await AppDataSource.getRepository(DevelopmentHistory)
@ -192,14 +193,18 @@ export class DevelopmentOfficerHistoryController extends Controller {
.leftJoinAndSelect("developmentHistory.development", "development")
.leftJoinAndSelect("developmentHistory.posLevel", "posLevel")
.leftJoinAndSelect("developmentHistory.posType", "posType")
.andWhere(year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1", { year: year })
.andWhere(
year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1",
{ year: year },
)
.andWhere(root != null && root != undefined ? "development.root = :root" : "1=1", {
root: root,
})
.andWhere("developmentHistory.type = :type", { type: type })
.andWhere(
new Brackets((qb) => {
qb.where(
keyword != null && keyword != ""
? "developmentHistory.prefix LIKE :keyword"
: "1=1",
keyword != null && keyword != "" ? "developmentHistory.prefix LIKE :keyword" : "1=1",
{
keyword: `%${keyword}%`,
},
@ -237,25 +242,19 @@ export class DevelopmentOfficerHistoryController extends Controller {
},
)
.orWhere(
keyword != null && keyword != ""
? "development.projectName LIKE :keyword"
: "1=1",
keyword != null && keyword != "" ? "development.projectName LIKE :keyword" : "1=1",
{
keyword: `%${keyword}%`,
},
)
.orWhere(
keyword != null && keyword != ""
? "posType.posTypeName LIKE :keyword"
: "1=1",
keyword != null && keyword != "" ? "posType.posTypeName LIKE :keyword" : "1=1",
{
keyword: `%${keyword}%`,
},
)
.orWhere(
keyword != null && keyword != ""
? "posLevel.posLevelName LIKE :keyword"
: "1=1",
keyword != null && keyword != "" ? "posLevel.posLevelName LIKE :keyword" : "1=1",
{
keyword: `%${keyword}%`,
},
@ -266,10 +265,10 @@ export class DevelopmentOfficerHistoryController extends Controller {
.skip((page - 1) * pageSize)
.take(pageSize)
.getManyAndCount();
const formattedData = development.map(item => ({
const formattedData = development.map((item) => ({
id: item.id,
citizenId: item.citizenId,
fullName: item.prefix+item.firstName+" "+item.lastName,
fullName: item.prefix + item.firstName + " " + item.lastName,
position: item.position,
posType: item.posType ? item.posType.posTypeName : null,
posLevel: item.posLevel ? item.posLevel.posLevelName : null,
@ -287,11 +286,11 @@ export class DevelopmentOfficerHistoryController extends Controller {
*
* @param {string} id Id
*/
@Get("{id}")
@Get("{id}")
async GetDevelopemtHistoryById(@Path() id: string) {
const type = "OFFICER";
const getDevelopment = await this.developmentHistoryRepository.findOne({
relations: ["development","posLevel","posType"],
relations: ["development", "posLevel", "posType"],
where: { id: id, type: type },
});
if (!getDevelopment) {
@ -306,7 +305,9 @@ export class DevelopmentOfficerHistoryController extends Controller {
citizenId: getDevelopment.citizenId ? getDevelopment.citizenId : null,
position: getDevelopment.position ? getDevelopment.position : null,
posLevelId: getDevelopment.posLevelId ? getDevelopment.posLevelId : null,
posLevelName: getDevelopment.posLevel.posLevelName ? getDevelopment.posLevel.posLevelName : null,
posLevelName: getDevelopment.posLevel.posLevelName
? getDevelopment.posLevel.posLevelName
: null,
posTypeId: getDevelopment.posTypeId ? getDevelopment.posTypeId : null,
posTypeName: getDevelopment.posType.posTypeName ? getDevelopment.posType.posTypeName : null,
posExecutive: getDevelopment.posExecutive ? getDevelopment.posExecutive : null,
@ -314,17 +315,27 @@ export class DevelopmentOfficerHistoryController extends Controller {
order: getDevelopment.order ? getDevelopment.order : null,
dateOrder: getDevelopment.dateOrder ? getDevelopment.dateOrder : null,
year: getDevelopment.development.year ? getDevelopment.development.year : null,
projectName: getDevelopment.development.projectName ? getDevelopment.development.projectName : null,
projectName: getDevelopment.development.projectName
? getDevelopment.development.projectName
: null,
dateStart: getDevelopment.development.dateStart ? getDevelopment.development.dateStart : null,
dateEnd: getDevelopment.development.dateEnd ? getDevelopment.development.dateEnd : null,
totalDate: getDevelopment.development.totalDate ? getDevelopment.development.totalDate : null,
addressAcademic: getDevelopment.development.addressAcademic ? getDevelopment.development.addressAcademic : null,
topicAcademic: getDevelopment.development.topicAcademic ? getDevelopment.development.topicAcademic : null,
dateStudyStart: getDevelopment.development.dateStudyStart ? getDevelopment.development.dateStudyStart : null,
dateStudyEnd: getDevelopment.development.dateStudyEnd ? getDevelopment.development.dateStudyEnd : null,
addressAcademic: getDevelopment.development.addressAcademic
? getDevelopment.development.addressAcademic
: null,
topicAcademic: getDevelopment.development.topicAcademic
? getDevelopment.development.topicAcademic
: null,
dateStudyStart: getDevelopment.development.dateStudyStart
? getDevelopment.development.dateStudyStart
: null,
dateStudyEnd: getDevelopment.development.dateStudyEnd
? getDevelopment.development.dateStudyEnd
: null,
org: null,
};
return new HttpSuccess(formattedData);
}
}

View file

@ -21,6 +21,7 @@ import {
CreateDevelopmentScholarship,
DevelopmentScholarship,
UpdateDevelopmentScholarship,
UpdateDevelopmentScholarshipUser,
} from "../entities/DevelopmentScholarship";
import { PosType } from "../entities/PosType";
import { PosLevel } from "../entities/PosLevel";
@ -237,6 +238,7 @@ export class DevelopmentScholarshipController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้");
}
const formattedData = {
root: getDevelopment.root ? getDevelopment.root : null,
rank: getDevelopment.rank ? getDevelopment.rank : null,
prefix: getDevelopment.prefix ? getDevelopment.prefix : null,
firstName: getDevelopment.firstName ? getDevelopment.firstName : null,
@ -314,10 +316,92 @@ export class DevelopmentScholarshipController extends Controller {
totalPeriod: getDevelopment.totalPeriod ? getDevelopment.totalPeriod : null,
status: getDevelopment.status ? getDevelopment.status : null,
profileId: getDevelopment.profileId ? getDevelopment.profileId : null,
planType: getDevelopment.planType ? getDevelopment.planType : null,
isNoUseBudget: getDevelopment.isNoUseBudget ? getDevelopment.isNoUseBudget : null,
};
return new HttpSuccess(formattedData);
}
/**
* API user
*
* @summary DEV_0 - user #
*
* @param {string} profileId profileId
*/
@Get("user/{profileId}")
async GetDevelopemtScholarshipUserById(@Path() profileId: string) {
const getDevelopment = await this.developmentScholarshipRepository.find({
where: { profileId: profileId },
});
const formattedData = getDevelopment.map((item) => ({
id: item.id,
scholarshipYear: item.scholarshipYear,
scholarshipType: item.scholarshipType,
fundType: item.fundType,
}));
return new HttpSuccess(formattedData);
}
/**
* API user
*
* @summary DEV_0 - user #
*
* @param {string} id id
*/
@Get("user/detail/{id}")
async GetDevelopemtScholarshipUserDetailById(@Path() id: string) {
const getDevelopment = await this.developmentScholarshipRepository.findOne({
where: { id: id },
select: [
"id",
"scholarshipYear",
"scholarshipType",
"fundType",
"governmentDate",
"isGraduated",
"graduatedDate",
"isNoGraduated",
"graduatedReason",
"root",
],
});
if (!getDevelopment) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้");
}
return new HttpSuccess(getDevelopment);
}
/**
* API user
*
* @summary DEV_015 - user #15
*
* @param {string} id
*/
@Put("user/detail/{id}")
async UpdateDevelopemtScholarshipUserById(
@Path() id: string,
@Body() requestBody: UpdateDevelopmentScholarshipUser,
@Request() request: { user: Record<string, any> },
) {
const getDevelopment = await this.developmentScholarshipRepository.findOne({
where: { id: id },
});
if (!getDevelopment) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้");
}
Object.assign(getDevelopment, requestBody);
getDevelopment.lastUpdateUserId = request.user.sub;
getDevelopment.lastUpdateFullName = request.user.name;
await this.developmentScholarshipRepository.save(getDevelopment);
return new HttpSuccess(getDevelopment.id);
}
/**
* API
*
@ -340,6 +424,8 @@ export class DevelopmentScholarshipController extends Controller {
}
const _status = status.trim().toUpperCase();
getDevelopment.status = _status;
getDevelopment.lastUpdateUserId = request.user.sub;
getDevelopment.lastUpdateFullName = request.user.name;
if (_status == "GRADUATE") {
if (getDevelopment.scholarshipType != null) {
switch (getDevelopment.scholarshipType.trim().toUpperCase()) {

View file

@ -25,7 +25,8 @@ import {
} from "../entities/DevelopmentHistory";
import { PosType } from "../entities/PosType";
import { PosLevel } from "../entities/PosLevel";
import Extension from "../interfaces/extension";
import { DevelopmentScholarship } from "../entities/DevelopmentScholarship";
@Route("api/v1/development/report")
@Tags("Report")
@Security("bearerAuth")
@ -34,6 +35,7 @@ export class ReportController extends Controller {
private developmentRepository = AppDataSource.getRepository(Development);
private posTypeRepository = AppDataSource.getRepository(PosType);
private posLevelRepository = AppDataSource.getRepository(PosLevel);
private developmentScholarshipRepository = AppDataSource.getRepository(DevelopmentScholarship);
/**
* API Report /
@ -63,18 +65,58 @@ export class ReportController extends Controller {
*
* @summary DEV_0xx - Report / #xx
*
* @param {string} type type report
*/
@Get("history-officer/{type}")
async GetReportDevelopemtHistoryOfficer(@Path() type: string) {
const _type = type.trim().toUpperCase();
const formattedData = {
org: _type,
};
@Post("history-officer")
async PostReportDevelopemtHistoryOfficer(
@Body()
body: {
year: number;
root: string;
},
) {
const development = await AppDataSource.getRepository(DevelopmentHistory)
.createQueryBuilder("developmentHistory")
.leftJoinAndSelect("developmentHistory.posLevel", "posLevel")
.leftJoinAndSelect("developmentHistory.posType", "posType")
.leftJoinAndSelect("developmentHistory.development", "development")
.andWhere(body.year != 0 && body.year != null ? "development.year = :year" : "1=1", {
year: body.year,
})
.andWhere(body.root != null ? "development.root = :root" : "1=1", {
root: body.root,
})
.andWhere("developmentHistory.type = :type", { type: "OFFICER" })
.select([
"developmentHistory.citizenId",
"developmentHistory.rank",
"developmentHistory.position",
"developmentHistory.posExecutive",
"developmentHistory.developmentId",
"developmentHistory.prefix",
"developmentHistory.firstName",
"developmentHistory.lastName",
"posLevel.posLevelName",
"posType.posTypeName",
"development.projectName",
"development.root",
])
.getMany();
const formattedData = development.map((item) => ({
id: item.id,
citizenId: Extension.ToThaiNumber(item.citizenId.toString()),
fullName: item.prefix + item.firstName + " " + item.lastName,
position: item.position,
posType: item.posType ? item.posType.posTypeName : null,
posLevel: item.posLevel ? item.posLevel.posLevelName : null,
posExecutive: item.posExecutive,
projectName: item.development ? item.development.projectName : null,
root: item.root,
}));
return new HttpSuccess({
template: "development",
reportName: "development",
template: "developmentHistoryOfficer",
reportName: "developmentHistoryOfficer",
data: {
data: formattedData,
},
@ -86,18 +128,60 @@ export class ReportController extends Controller {
*
* @summary DEV_0xx - Report / #xx
*
* @param {string} type type report
* @param {number} year year report
*/
@Get("history-employee/{type}")
async GetReportDevelopemtHistoryEmployee(@Path() type: string) {
const _type = type.trim().toUpperCase();
const formattedData = {
org: _type,
};
@Post("history-employee")
async PostReportDevelopemtHistoryEmployee(
@Body()
body: {
year: number;
root: string;
},
) {
const development = await AppDataSource.getRepository(DevelopmentHistory)
.createQueryBuilder("developmentHistory")
.leftJoinAndSelect("developmentHistory.employeePosLevel", "employeePosLevel")
.leftJoinAndSelect("developmentHistory.employeePosType", "employeePosType")
.leftJoinAndSelect("developmentHistory.development", "development")
.andWhere(body.year != 0 && body.year != null ? "development.year = :year" : "1=1", {
year: body.year,
})
.andWhere(body.root != null ? "development.root = :root" : "1=1", {
root: body.root,
})
.andWhere("developmentHistory.type = :type", { type: "EMPLOYEE" })
.select([
"developmentHistory.citizenId",
"developmentHistory.position",
"developmentHistory.developmentId",
"developmentHistory.prefix",
"developmentHistory.firstName",
"developmentHistory.lastName",
"employeePosLevel.posLevelName",
"employeePosType.posTypeName",
"employeePosType.posTypeShortName",
"development.projectName",
"development.root",
])
.getMany();
const formattedData = development.map((item) => ({
id: item.id,
citizenId: Extension.ToThaiNumber(item.citizenId.toString()),
fullName: item.prefix + item.firstName + " " + item.lastName,
position: item.position,
employeePosType: item.employeePosType ? item.employeePosType.posTypeName : null,
employeePosLevel:
item.employeePosType.posTypeShortName +
" " +
Extension.ToThaiNumber(item.employeePosLevel.posLevelName.toString()),
projectName: item.development ? item.development.projectName : null,
root: item.root,
}));
return new HttpSuccess({
template: "development",
reportName: "development",
template: "developmentHistoryEmployee",
reportName: "developmentHistoryEmployee",
data: {
data: formattedData,
},
@ -124,4 +208,86 @@ export class ReportController extends Controller {
},
});
}
/**
* API Report / detail
*
* @summary DEV_0xx - Report / detail #xx
*
* @param {string} id Id scholarship
*/
@Get("scholarship/{id}")
async GetReportDevelopemtScholarshipDetail(@Path() id: string) {
const getDevelopment = await this.developmentScholarshipRepository.findOne({
where: { id: id },
});
if (!getDevelopment) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้");
}
if (getDevelopment.scholarshipType != null) {
switch (getDevelopment.scholarshipType.trim().toUpperCase()) {
case "DOMESTICE":
getDevelopment.scholarshipType = "การศึกษาในประเทศ";
break;
case "NOABROAD":
getDevelopment.scholarshipType =
"ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรที่ไม่มีการไปต่างประเทศ)";
break;
case "ABROAD":
getDevelopment.scholarshipType =
"ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรที่มีการไปต่างประเทศ)";
break;
case "EXECUTIVE":
getDevelopment.scholarshipType =
"ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรประเภทนักบริหาร)";
break;
default:
break;
}
}
const formattedData = {
id: getDevelopment.id,
firstName: getDevelopment.firstName,
lastName: getDevelopment.lastName,
position: getDevelopment.position,
root: getDevelopment.root,
degreeLevel: getDevelopment.degreeLevel,
course: getDevelopment.course,
field: getDevelopment.field,
studyPlace: getDevelopment.studyPlace,
scholarshipType: getDevelopment.scholarshipType,
startDate:
getDevelopment.startDate == null
? ""
: Extension.ToThaiNumber(Extension.ToThaiFullDate(getDevelopment.startDate)),
endDate:
getDevelopment.endDate == null
? ""
: Extension.ToThaiNumber(Extension.ToThaiFullDate(getDevelopment.endDate)),
reportBackNo:
getDevelopment.reportBackNo == null
? ""
: Extension.ToThaiNumber(getDevelopment.reportBackNo),
reportBackNoDate:
getDevelopment.reportBackNoDate == null
? ""
: Extension.ToThaiNumber(Extension.ToThaiFullDate(getDevelopment.reportBackNoDate)),
governmentDate:
getDevelopment.governmentDate == null
? ""
: Extension.ToThaiNumber(Extension.ToThaiFullDate(getDevelopment.governmentDate)),
graduatedDate:
getDevelopment.graduatedDate == null
? ""
: Extension.ToThaiNumber(Extension.ToThaiFullDate(getDevelopment.graduatedDate)),
graduatedReason: getDevelopment.graduatedReason,
};
return new HttpSuccess({
template: "repatriation",
reportName: "repatriation",
data: formattedData,
});
}
}

View file

@ -7,12 +7,46 @@ import { ActualGoal, CreateActualGoal } from "./ActualGoal";
import { CreatePlannedGoal, PlannedGoal } from "./PlannedGoal";
import { DevelopmentHistory } from "./DevelopmentHistory";
import { DevelopmentProjectType } from "./DevelopmentProjectType";
import { DevelopmentProjectTechnique } from "./DevelopmentProjectTechnique";
import { DevelopmentProjectTechniquePlanned } from "./DevelopmentProjectTechniquePlanned";
import { CreateDevelopmentEvaluation, DevelopmentEvaluation } from "./DevelopmentEvaluation";
import { CreateDevelopmentAddress, DevelopmentAddress } from "./DevelopmentAddress";
import { DevelopmentProjectTechniqueActual } from "./DevelopmentProjectTechniqueActual";
import { StrategyChild5 } from "./StrategyChild5";
import { StrategyChild4 } from "./StrategyChild4";
import { StrategyChild3 } from "./StrategyChild3";
import { StrategyChild2 } from "./StrategyChild2";
import { StrategyChild1 } from "./StrategyChild1";
@Entity("development")
export class Development extends EntityBase {
@Column({
nullable: true,
comment: "id หน่วยงาน",
default: null,
})
rootId: string;
@Column({
nullable: true,
comment: "ชื่อหน่วยงาน",
default: null,
})
root: string;
@Column({
nullable: true,
comment: "ชื่อย่อหน่วยงาน",
default: null,
})
orgRootShortName: string;
@Column({
nullable: true,
comment: "id revision",
default: null,
})
orgRevisionId: string;
@Column({
// กำลังดำเนินการ (ONGOING)
// เสร็จสิ้น (FINISH)
@ -141,11 +175,18 @@ export class Development extends EntityBase {
projectNigthHoldActual: number;
@OneToMany(
() => DevelopmentProjectTechnique,
(developmentProjectTechnique: DevelopmentProjectTechnique) =>
developmentProjectTechnique.development,
() => DevelopmentProjectTechniquePlanned,
(developmentProjectTechniquePlanned: DevelopmentProjectTechniquePlanned) =>
developmentProjectTechniquePlanned.development,
)
developmentProjectTechniques: DevelopmentProjectTechnique[];
developmentProjectTechniquePlanneds: DevelopmentProjectTechniquePlanned[];
@OneToMany(
() => DevelopmentProjectTechniqueActual,
(developmentProjectTechniqueActual: DevelopmentProjectTechniqueActual) =>
developmentProjectTechniqueActual.development,
)
developmentProjectTechniqueActuals: DevelopmentProjectTechniqueActual[];
@Column({
nullable: true,
@ -366,12 +407,138 @@ export class Development extends EntityBase {
(developmentHistory: DevelopmentHistory) => developmentHistory.development,
)
developmentHistorys: DevelopmentHistory[];
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild1 เป้าหมายตามแผน",
default: null,
})
strategyChild1PlannedId: string;
@ManyToOne(() => StrategyChild1, (strategyChild1) => strategyChild1.developmentPlanneds)
@JoinColumn({ name: "strategyChild1PlannedId" })
strategyChild1Planned: StrategyChild1;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild2 เป้าหมายตามแผน",
default: null,
})
strategyChild2PlannedId: string;
@ManyToOne(() => StrategyChild2, (strategyChild2) => strategyChild2.developmentPlanneds)
@JoinColumn({ name: "strategyChild2PlannedId" })
strategyChild2Planned: StrategyChild2;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild3 เป้าหมายตามแผน",
default: null,
})
strategyChild3PlannedId: string;
@ManyToOne(() => StrategyChild3, (strategyChild3) => strategyChild3.developmentPlanneds)
@JoinColumn({ name: "strategyChild3PlannedId" })
strategyChild3Planned: StrategyChild3;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild4 เป้าหมายตามแผน",
default: null,
})
strategyChild4PlannedId: string;
@ManyToOne(() => StrategyChild4, (strategyChild4) => strategyChild4.developmentPlanneds)
@JoinColumn({ name: "strategyChild4PlannedId" })
strategyChild4Planned: StrategyChild4;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild5 เป้าหมายตามแผน",
default: null,
})
strategyChild5PlannedId: string;
@ManyToOne(() => StrategyChild5, (strategyChild5) => strategyChild5.developmentPlanneds)
@JoinColumn({ name: "strategyChild5PlannedId" })
strategyChild5Planned: StrategyChild5;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild1 เป้าหมายตามจริง",
default: null,
})
strategyChild1ActualId: string;
@ManyToOne(() => StrategyChild1, (strategyChild1) => strategyChild1.developmentActuals)
@JoinColumn({ name: "strategyChild1ActualId" })
strategyChild1Actual: StrategyChild1;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild2 เป้าหมายตามจริง",
default: null,
})
strategyChild2ActualId: string;
@ManyToOne(() => StrategyChild2, (strategyChild2) => strategyChild2.developmentActuals)
@JoinColumn({ name: "strategyChild2ActualId" })
strategyChild2Actual: StrategyChild2;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild3 เป้าหมายตามจริง",
default: null,
})
strategyChild3ActualId: string;
@ManyToOne(() => StrategyChild3, (strategyChild3) => strategyChild3.developmentActuals)
@JoinColumn({ name: "strategyChild3ActualId" })
strategyChild3Actual: StrategyChild3;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild4 เป้าหมายตามจริง",
default: null,
})
strategyChild4ActualId: string;
@ManyToOne(() => StrategyChild4, (strategyChild4) => strategyChild4.developmentActuals)
@JoinColumn({ name: "strategyChild4ActualId" })
strategyChild4Actual: StrategyChild4;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง strategyChild5 เป้าหมายตามจริง",
default: null,
})
strategyChild5ActualId: string;
@ManyToOne(() => StrategyChild5, (strategyChild5) => strategyChild5.developmentActuals)
@JoinColumn({ name: "strategyChild5ActualId" })
strategyChild5Actual: StrategyChild5;
}
export class CreateDevelopment {
@Column()
year: number;
@Column()
projectName: string;
@Column()
root: string;
@Column()
rootId: string;
@Column()
orgRootShortName: string;
@Column()
orgRevisionId: string;
@Column()
strategyChildPlannedId: string;
@Column()
strategyChildPlannedNode: number;
@Column()
strategyChildActualId: string;
@Column()
strategyChildActualNode: number;
}
export class UpdateDevelopment1 {
@ -383,6 +550,22 @@ export class UpdateDevelopment1 {
reason: string | null;
@Column()
objective: string | null;
@Column()
root: string;
@Column()
rootId: string;
@Column()
orgRootShortName: string;
@Column()
orgRevisionId: string;
@Column()
strategyChildPlannedId: string;
@Column()
strategyChildPlannedNode: number;
@Column()
strategyChildActualId: string;
@Column()
strategyChildActualNode: number;
}
export class UpdateDevelopment2_1 {
@Column()
@ -400,6 +583,8 @@ export class UpdateDevelopment3 {
@Column()
developmentProjectTypes?: string[];
@Column()
projectModal?: number | null;
@Column()
isBackPlanned?: boolean | null;
@Column()
isHoldPlanned?: boolean | null;
@ -410,6 +595,8 @@ export class UpdateDevelopment3 {
@Column()
projectNigthHoldPlanned?: number | null;
@Column()
developmentProjectTechniquePlanneds?: string[];
@Column()
isBackActual?: boolean | null;
@Column()
isHoldActual?: boolean | null;
@ -420,13 +607,11 @@ export class UpdateDevelopment3 {
@Column()
projectNigthHoldActual?: number | null;
@Column()
developmentProjectTechniques?: string[];
@Column()
projectModal?: number | null;
developmentProjectTechniqueActuals?: string[];
}
export class UpdateDevelopment4 {
@Column()
developmentEvaluations: CreateDevelopmentEvaluation[];
// @Column()
// developmentEvaluations: CreateDevelopmentEvaluation[];
@Column()
project: string | null;
@Column()
@ -479,8 +664,4 @@ export class UpdateDevelopment5 {
addressAcademic: string | null;
@Column()
provinceActualId: string | null;
@Column()
dateStudyStart: Date | null;
@Column()
dateStudyEnd: Date | null;
}

View file

@ -8,6 +8,42 @@ import { EmployeePosLevel } from "./EmployeePosLevel";
@Entity("developmentHistory")
export class DevelopmentHistory extends EntityBase {
@Column({
nullable: true,
comment: "id หน่วยงาน",
default: null,
})
rootId: string;
@Column({
nullable: true,
comment: "ชื่อหน่วยงาน",
default: null,
})
root: string;
@Column({
nullable: true,
comment: "ชื่อย่อหน่วยงาน",
default: null,
})
orgRootShortName: string;
@Column({
nullable: true,
comment: "id revision",
default: null,
})
orgRevisionId: string;
@Column({
nullable: true,
comment: "id profile",
length: 40,
default: null,
})
profileId: string;
@Column({
nullable: true,
comment: "ประเภทราชการ",
@ -127,6 +163,14 @@ export class DevelopmentHistory extends EntityBase {
@JoinColumn({ name: "developmentId" })
development: Development;
@Column({
nullable: true,
comment: "จำนวนวันที่อบรม",
default: null,
length: 255,
})
trainingDays: string;
@Column({
nullable: true,
comment: "เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ",
@ -142,6 +186,12 @@ export class DevelopmentHistory extends EntityBase {
default: null,
})
dateOrder: Date;
@Column({
comment: "บันทึกลงทะเบียนประวัติ",
default: false,
})
isDone: boolean;
}
export class CreateDevelopmentHistory {
@Column()

View file

@ -2,8 +2,8 @@ import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { EntityBase } from "./base/Base";
import { Development } from "./Development";
@Entity("developmentProjectTechnique")
export class DevelopmentProjectTechnique extends EntityBase {
@Entity("developmentProjectTechniqueActual")
export class DevelopmentProjectTechniqueActual extends EntityBase {
@Column({
// TRAINING = การอบรม
// MEETING = การประชุม
@ -28,12 +28,12 @@ export class DevelopmentProjectTechnique extends EntityBase {
@ManyToOne(
() => Development,
(development: Development) => development.developmentProjectTechniques,
(development: Development) => development.developmentProjectTechniqueActuals,
)
@JoinColumn({ name: "developmentId" })
development: Development;
}
export class CreateDevelopmentProjectTechnique {
export class CreateDevelopmentProjectTechniqueActual {
@Column()
name: number;
}

View file

@ -0,0 +1,39 @@
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { EntityBase } from "./base/Base";
import { Development } from "./Development";
@Entity("developmentProjectTechniquePlanned")
export class DevelopmentProjectTechniquePlanned extends EntityBase {
@Column({
// TRAINING = การอบรม
// MEETING = การประชุม
// SEMINAR = การสัมมนา
// STUDY_TOUR = การศึกษาดูงาน
// ACADEMIC_SEMINAR = การสัมมนาทางวิชาการ
// WORKSHOP = การสัมมนาเชิงปฏิบัติการ
// SPECIAL_LECTURE = การบรรยายพิเศษ
// STUDY_TRAINING = การฝึกศึกษา
nullable: true,
comment: "เทคนิควิธีการที่ใช้ในการพัฒนา",
default: null,
})
name: string;
@Column({
nullable: true,
comment: "โครงการ/หลักสูตรการฝึกอบรม",
default: null,
})
developmentId: string;
@ManyToOne(
() => Development,
(development: Development) => development.developmentProjectTechniquePlanneds,
)
@JoinColumn({ name: "developmentId" })
development: Development;
}
export class CreateDevelopmentProjectTechniquePlanned {
@Column()
name: number;
}

View file

@ -5,6 +5,34 @@ import { PosType } from "./PosType";
@Entity("developmentScholarship")
export class DevelopmentScholarship extends EntityBase {
@Column({
nullable: true,
comment: "id หน่วยงาน",
default: null,
})
rootId: string;
@Column({
nullable: true,
comment: "ชื่อหน่วยงาน",
default: null,
})
root: string;
@Column({
nullable: true,
comment: "ชื่อย่อหน่วยงาน",
default: null,
})
orgRootShortName: string;
@Column({
nullable: true,
comment: "id revision",
default: null,
})
orgRevisionId: string;
@Column({
nullable: true,
comment: "id profile",
@ -213,7 +241,7 @@ export class DevelopmentScholarship extends EntityBase {
@Column({
nullable: true,
type: "date",
type: "datetime",
comment: "ลงวันที่(หนังสือ)",
default: null,
})
@ -221,7 +249,7 @@ export class DevelopmentScholarship extends EntityBase {
@Column({
nullable: true,
type: "date",
type: "datetime",
comment: "หนังสืออนุมัติเมื่อวันที่",
default: null,
})
@ -272,7 +300,7 @@ export class DevelopmentScholarship extends EntityBase {
@Column({
nullable: true,
type: "date",
type: "datetime",
comment: "ลงวันที่(เลขที่สัญญา)",
default: null,
})
@ -288,7 +316,7 @@ export class DevelopmentScholarship extends EntityBase {
@Column({
nullable: true,
type: "date",
type: "datetime",
comment: "ลงวันที่(เลขที่หนังสือรายงานตัวกลับ)",
default: null,
})
@ -296,7 +324,7 @@ export class DevelopmentScholarship extends EntityBase {
@Column({
nullable: true,
type: "date",
type: "datetime",
comment: "รายงานตัวกลับวันที่",
default: null,
})
@ -429,8 +457,63 @@ export class DevelopmentScholarship extends EntityBase {
default: null,
})
totalPeriod: string;
@Column({
// ในแผนฯ (INPLAN)
// นอกแผนฯ (OUTPLAN)
nullable: true,
comment: "ในแผนฯ",
length: 40,
default: null,
})
planType: string;
@Column({
comment: "ไม่ใช้งบประมาณ",
default: false,
})
isNoUseBudget: boolean;
@Column({
nullable: true,
type: "datetime",
comment: "กลับเข้ารับราชการตั้งแต่",
default: null,
})
governmentDate: Date;
@Column({
comment: "สำเร็จการศึกษาตามที่หลักสูตรกำหนด",
default: false,
})
isGraduated: boolean;
@Column({
nullable: true,
type: "datetime",
comment: "ตั้งแต่",
default: null,
})
graduatedDate: Date;
@Column({
comment: "เสร็จสิ้นการศึกษาตามที่หลักสูตรกำหนดแล้วแต่ยังไม่สำเร็จการศึกษา",
default: false,
})
isNoGraduated: boolean;
@Column({
nullable: true,
comment: "เนื่องจาก",
default: null,
})
graduatedReason: string;
}
export class CreateDevelopmentScholarship {
rootId: string | null;
root: string | null;
orgRootShortName: string | null;
orgRevisionId: string | null;
profileId: string | null;
rank?: string | null;
prefix: string | null;
@ -481,9 +564,15 @@ export class CreateDevelopmentScholarship {
studyAbroadStartDate: Date | null;
studyAbroadEndDate: Date | null;
totalPeriod: string | null;
planType: string | null;
isNoUseBudget: boolean | null;
}
export class UpdateDevelopmentScholarship {
rootId: string | null;
root: string | null;
orgRootShortName: string | null;
orgRevisionId: string | null;
profileId: string | null;
rank?: string | null;
prefix: string | null;
@ -534,4 +623,14 @@ export class UpdateDevelopmentScholarship {
studyAbroadStartDate: Date | null;
studyAbroadEndDate: Date | null;
totalPeriod: string | null;
planType: string | null;
isNoUseBudget: boolean | null;
}
export class UpdateDevelopmentScholarshipUser {
governmentDate: Date | null;
isGraduated: boolean | null;
graduatedDate: Date | null;
isNoGraduated: boolean | null;
graduatedReason: string | null;
}

View file

@ -4,7 +4,7 @@ import { StrategyChild2 } from "./StrategyChild2";
import { StrategyChild3 } from "./StrategyChild3";
import { StrategyChild4 } from "./StrategyChild4";
import { StrategyChild5 } from "./StrategyChild5";
import { Development } from "./Development";
@Entity("strategyChild1")
export class StrategyChild1 extends EntityBase {
@ -28,6 +28,10 @@ export class StrategyChild1 extends EntityBase {
@OneToMany(() => StrategyChild5, (strategyChild5) => strategyChild5.strategyChild1)
strategyChild5s: StrategyChild5[];
@OneToMany(() => Development, (development) => development.strategyChild1Planned)
developmentPlanneds: Development[];
@OneToMany(() => Development, (development) => development.strategyChild1Actual)
developmentActuals: Development[];
}
export class CreateStrategyChild1 {

View file

@ -4,7 +4,7 @@ import { StrategyChild1 } from "./StrategyChild1";
import { StrategyChild3 } from "./StrategyChild3";
import { StrategyChild4 } from "./StrategyChild4";
import { StrategyChild5 } from "./StrategyChild5";
import { Development } from "./Development";
@Entity("strategyChild2")
export class StrategyChild2 extends EntityBase {
@ -21,7 +21,7 @@ export class StrategyChild2 extends EntityBase {
comment: "คีย์นอก(FK)ของตาราง strategyChild1",
})
strategyChild1Id: string;
@ManyToOne(() => StrategyChild1, (strategyChild1) => strategyChild1.strategyChild2s)
@JoinColumn({ name: "strategyChild1Id" })
strategyChild1: StrategyChild1;
@ -35,9 +35,11 @@ export class StrategyChild2 extends EntityBase {
@OneToMany(() => StrategyChild5, (strategyChild5) => strategyChild5.strategyChild2)
strategyChild5s: StrategyChild5[];
}
@OneToMany(() => Development, (development) => development.strategyChild2Planned)
developmentPlanneds: Development[];
@OneToMany(() => Development, (development) => development.strategyChild2Actual)
developmentActuals: Development[];
}
export class CreateStrategyChild2 {
@Column()

View file

@ -4,7 +4,7 @@ import { StrategyChild1 } from "./StrategyChild1";
import { StrategyChild2 } from "./StrategyChild2";
import { StrategyChild4 } from "./StrategyChild4";
import { StrategyChild5 } from "./StrategyChild5";
import { Development } from "./Development";
@Entity("strategyChild3")
export class StrategyChild3 extends EntityBase {
@ -42,12 +42,16 @@ export class StrategyChild3 extends EntityBase {
@OneToMany(() => StrategyChild5, (strategyChild5) => strategyChild5.strategyChild3)
strategyChild5s: StrategyChild5[];
}
@OneToMany(() => Development, (development) => development.strategyChild3Planned)
developmentPlanneds: Development[];
@OneToMany(() => Development, (development) => development.strategyChild3Actual)
developmentActuals: Development[];
}
export class CreateStrategyChild3 {
@Column()
strategyChild3Name: string;
@Column("uuid")
strategyChild2Id: string;
}

View file

@ -4,7 +4,7 @@ import { StrategyChild1 } from "./StrategyChild1";
import { StrategyChild2 } from "./StrategyChild2";
import { StrategyChild3 } from "./StrategyChild3";
import { StrategyChild5 } from "./StrategyChild5";
import { Development } from "./Development";
@Entity("strategyChild4")
export class StrategyChild4 extends EntityBase {
@ -48,8 +48,12 @@ export class StrategyChild4 extends EntityBase {
@OneToMany(() => StrategyChild5, (strategyChild5) => strategyChild5.strategyChild4)
strategyChild5s: StrategyChild5[];
}
@OneToMany(() => Development, (development) => development.strategyChild4Planned)
developmentPlanneds: Development[];
@OneToMany(() => Development, (development) => development.strategyChild4Actual)
developmentActuals: Development[];
}
export class CreateStrategyChild4 {
@Column()

View file

@ -4,7 +4,7 @@ import { StrategyChild1 } from "./StrategyChild1";
import { StrategyChild2 } from "./StrategyChild2";
import { StrategyChild3 } from "./StrategyChild3";
import { StrategyChild4 } from "./StrategyChild4";
import { Development } from "./Development";
@Entity("strategyChild5")
export class StrategyChild5 extends EntityBase {
@ -56,8 +56,11 @@ export class StrategyChild5 extends EntityBase {
@JoinColumn({ name: "strategyChild4Id" })
strategyChild4: StrategyChild4;
}
@OneToMany(() => Development, (development) => development.strategyChild5Planned)
developmentPlanneds: Development[];
@OneToMany(() => Development, (development) => development.strategyChild5Actual)
developmentActuals: Development[];
}
export class CreateStrategyChild5 {
@Column()

View file

@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class AddTableStarty11712815316667 implements MigrationInterface {
name = 'AddTableStarty11712815316667'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE \`developmentProjectTechniquePlanned\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`name\` varchar(255) NULL COMMENT 'เทคนิควิธีการที่ใช้ในการพัฒนา', \`developmentId\` varchar(255) NULL COMMENT 'โครงการ/หลักสูตรการฝึกอบรม', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`developmentProjectTechniqueActual\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`name\` varchar(255) NULL COMMENT 'เทคนิควิธีการที่ใช้ในการพัฒนา', \`developmentId\` varchar(255) NULL COMMENT 'โครงการ/หลักสูตรการฝึกอบรม', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`ALTER TABLE \`developmentProjectTechniquePlanned\` ADD CONSTRAINT \`FK_7166cc94112552ea072a2cc6134\` FOREIGN KEY (\`developmentId\`) REFERENCES \`development\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`developmentProjectTechniqueActual\` ADD CONSTRAINT \`FK_aaaee1c5fb44bef093ed78a0c32\` FOREIGN KEY (\`developmentId\`) REFERENCES \`development\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentProjectTechniqueActual\` DROP FOREIGN KEY \`FK_aaaee1c5fb44bef093ed78a0c32\``);
await queryRunner.query(`ALTER TABLE \`developmentProjectTechniquePlanned\` DROP FOREIGN KEY \`FK_7166cc94112552ea072a2cc6134\``);
await queryRunner.query(`DROP TABLE \`developmentProjectTechniqueActual\``);
await queryRunner.query(`DROP TABLE \`developmentProjectTechniquePlanned\``);
}
}

View file

@ -0,0 +1,26 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentScholarshipAddPlanType1712824449740 implements MigrationInterface {
name = 'UpdateTableDevelopmentScholarshipAddPlanType1712824449740'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`planType\` varchar(40) NULL COMMENT 'ในแผนฯ'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`isNoUseBudget\` tinyint NOT NULL COMMENT 'ไม่ใช้งบประมาณ' DEFAULT 0`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`governmentDate\` datetime NULL COMMENT 'กลับเข้ารับราชการตั้งแต่'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`isGraduated\` tinyint NOT NULL COMMENT 'สำเร็จการศึกษาตามที่หลักสูตรกำหนด' DEFAULT 0`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`graduatedDate\` datetime NULL COMMENT 'ตั้งแต่'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`isNoGraduated\` tinyint NOT NULL COMMENT 'เสร็จสิ้นการศึกษาตามที่หลักสูตรกำหนดแล้วแต่ยังไม่สำเร็จการศึกษา' DEFAULT 0`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`graduatedReason\` varchar(255) NULL COMMENT 'เนื่องจาก'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`graduatedReason\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`isNoGraduated\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`graduatedDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`isGraduated\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`governmentDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`isNoUseBudget\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`planType\``);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentAddRoot1712904313381 implements MigrationInterface {
name = 'UpdateTableDevelopmentAddRoot1712904313381'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` ADD \`rootId\` varchar(255) NULL COMMENT 'id หน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`root\` varchar(255) NULL COMMENT 'ชื่อหน่วยงาน'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`root\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`rootId\``);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentAddRootshortname1712904744359 implements MigrationInterface {
name = 'UpdateTableDevelopmentAddRootshortname1712904744359'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` ADD \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่ิหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`orgRevisionId\` varchar(255) NULL COMMENT 'id revision'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`orgRevisionId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`orgRootShortName\``);
}
}

View file

@ -0,0 +1,52 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentAddStrategyChild1712927871127 implements MigrationInterface {
name = 'UpdateTableDevelopmentAddStrategyChild1712927871127'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild1PlannedId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild1 เป้าหมายตามแผน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild2PlannedId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild2 เป้าหมายตามแผน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild3PlannedId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild3 เป้าหมายตามแผน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild4PlannedId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild4 เป้าหมายตามแผน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild5PlannedId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild5 เป้าหมายตามแผน'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild1ActualId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild1 เป้าหมายตามจริง'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild2ActualId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild2 เป้าหมายตามจริง'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild3ActualId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild3 เป้าหมายตามจริง'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild4ActualId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild4 เป้าหมายตามจริง'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD \`strategyChild5ActualId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง strategyChild5 เป้าหมายตามจริง'`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_10ff41d23b977cf8dce92e9b167\` FOREIGN KEY (\`strategyChild1PlannedId\`) REFERENCES \`strategyChild1\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_593bc4c0cda43a2bee2928bda49\` FOREIGN KEY (\`strategyChild2PlannedId\`) REFERENCES \`strategyChild2\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_231ce173640401d258c977aae79\` FOREIGN KEY (\`strategyChild3PlannedId\`) REFERENCES \`strategyChild3\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_44fb0c37a11d7ad9b8ca98aaa08\` FOREIGN KEY (\`strategyChild4PlannedId\`) REFERENCES \`strategyChild4\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_4cd86d57223a295e6de3c42cb61\` FOREIGN KEY (\`strategyChild5PlannedId\`) REFERENCES \`strategyChild5\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_a54d96cd5fda35d92815f7f65eb\` FOREIGN KEY (\`strategyChild1ActualId\`) REFERENCES \`strategyChild1\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_8a8b6b92dfd3f78d012300524df\` FOREIGN KEY (\`strategyChild2ActualId\`) REFERENCES \`strategyChild2\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_9ee4f1c6a2f2c86760da928f01a\` FOREIGN KEY (\`strategyChild3ActualId\`) REFERENCES \`strategyChild3\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_adf3d238b02f5806c9ed1e9b90b\` FOREIGN KEY (\`strategyChild4ActualId\`) REFERENCES \`strategyChild4\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`development\` ADD CONSTRAINT \`FK_f078e198298457e517c8d90e337\` FOREIGN KEY (\`strategyChild5ActualId\`) REFERENCES \`strategyChild5\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_f078e198298457e517c8d90e337\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_adf3d238b02f5806c9ed1e9b90b\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_9ee4f1c6a2f2c86760da928f01a\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_8a8b6b92dfd3f78d012300524df\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_a54d96cd5fda35d92815f7f65eb\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_4cd86d57223a295e6de3c42cb61\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_44fb0c37a11d7ad9b8ca98aaa08\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_231ce173640401d258c977aae79\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_593bc4c0cda43a2bee2928bda49\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP FOREIGN KEY \`FK_10ff41d23b977cf8dce92e9b167\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild5ActualId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild4ActualId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild3ActualId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild2ActualId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild1ActualId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild5PlannedId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild4PlannedId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild3PlannedId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild2PlannedId\``);
await queryRunner.query(`ALTER TABLE \`development\` DROP COLUMN \`strategyChild1PlannedId\``);
}
}

View file

@ -0,0 +1,22 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentAddStrategyChild11712930900458 implements MigrationInterface {
name = 'UpdateTableDevelopmentAddStrategyChild11712930900458'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`rootId\` varchar(255) NULL COMMENT 'id หน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`root\` varchar(255) NULL COMMENT 'ชื่อหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่ิหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`orgRevisionId\` varchar(255) NULL COMMENT 'id revision'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`isDone\` tinyint NOT NULL COMMENT 'บันทึกลงทะเบียนประวัติ' DEFAULT 0`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`isDone\``);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`orgRevisionId\``);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`orgRootShortName\``);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`root\``);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`rootId\``);
}
}

View file

@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentscholarAddRootid1713012352435 implements MigrationInterface {
name = 'UpdateTableDevelopmentscholarAddRootid1713012352435'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`rootId\` varchar(255) NULL COMMENT 'id หน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`root\` varchar(255) NULL COMMENT 'ชื่อหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่อหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`orgRevisionId\` varchar(255) NULL COMMENT 'id revision'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`orgRevisionId\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`orgRootShortName\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`root\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`rootId\``);
}
}

View file

@ -0,0 +1,32 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentscholarDateToDatetime1713014657464 implements MigrationInterface {
name = 'UpdateTableDevelopmentscholarDateToDatetime1713014657464'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`bookNoDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`bookNoDate\` datetime NULL COMMENT 'ลงวันที่(หนังสือ)'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`bookApproveDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`bookApproveDate\` datetime NULL COMMENT 'หนังสืออนุมัติเมื่อวันที่'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`contractDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`contractDate\` datetime NULL COMMENT 'ลงวันที่(เลขที่สัญญา)'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`reportBackNoDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`reportBackNoDate\` datetime NULL COMMENT 'ลงวันที่(เลขที่หนังสือรายงานตัวกลับ)'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`reportBackDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`reportBackDate\` datetime NULL COMMENT 'รายงานตัวกลับวันที่'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`reportBackDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`reportBackDate\` date NULL COMMENT 'รายงานตัวกลับวันที่'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`reportBackNoDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`reportBackNoDate\` date NULL COMMENT 'ลงวันที่(เลขที่หนังสือรายงานตัวกลับ)'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`contractDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`contractDate\` date NULL COMMENT 'ลงวันที่(เลขที่สัญญา)'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`bookApproveDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`bookApproveDate\` date NULL COMMENT 'หนังสืออนุมัติเมื่อวันที่'`);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`bookNoDate\``);
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`bookNoDate\` date NULL COMMENT 'ลงวันที่(หนังสือ)'`);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentHistoryAddProfileId1713163199894 implements MigrationInterface {
name = 'UpdateTableDevelopmentHistoryAddProfileId1713163199894'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`profileId\` varchar(40) NULL COMMENT 'id profile'`);
await queryRunner.query(`ALTER TABLE \`development\` CHANGE \`orgRootShortName\` \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่อหน่วยงาน'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`development\` CHANGE \`orgRootShortName\` \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่ิหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`profileId\``);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableDevelopmentHistoryAddTrainingDays1713179439957 implements MigrationInterface {
name = 'UpdateTableDevelopmentHistoryAddTrainingDays1713179439957'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`trainingDays\` varchar(255) NULL COMMENT 'จำนวนวันที่อบรม'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` CHANGE \`orgRootShortName\` \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่อหน่วยงาน'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`developmentHistory\` CHANGE \`orgRootShortName\` \`orgRootShortName\` varchar(255) NULL COMMENT 'ชื่อย่ิหน่วยงาน'`);
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`trainingDays\``);
}
}