add dateRetireLaw

This commit is contained in:
Bright 2025-02-24 14:08:11 +07:00
parent 6f6b6bba43
commit 7a3085c57f
3 changed files with 45 additions and 8 deletions

View file

@ -187,6 +187,7 @@ export class ReportController extends Controller {
@Query() ageMax?: number, @Query() ageMax?: number,
@Query() isProbation?: boolean, @Query() isProbation?: boolean,
@Query() isRetire?: boolean, @Query() isRetire?: boolean,
@Query() isRetireLaw?: boolean,
@Query() retireType?: string, @Query() retireType?: string,
@Query() sortBy: string = "posMasterNo", @Query() sortBy: string = "posMasterNo",
@Query() sort: "ASC" | "DESC" = "ASC", @Query() sort: "ASC" | "DESC" = "ASC",
@ -234,12 +235,17 @@ export class ReportController extends Controller {
const IsLeavecondition = ["registryOfficer.isLeave = :isLeave"]; const IsLeavecondition = ["registryOfficer.isLeave = :isLeave"];
const parameters: any = { isLeave: isRetire }; const parameters: any = { isLeave: isRetire };
if (retireType && retireType.trim() !== "") { if (retireType && retireType.trim() !== "") {
IsLeavecondition.push("registryOfficer.leaveType = :retireType"); IsLeavecondition.push("registryOfficer.leaveType = :retireType");
parameters.retireType = retireType; parameters.retireType = retireType;
} }
let retireLawCondition = "1=1";
if(isRetireLaw) {
retireLawCondition =
"DATE(registryOfficer.dateRetireLaw) >= :startDateRetireLaw AND DATE(registryOfficer.dateRetireLaw) <= :endDateRetireLaw";
}
const [lists, total] = await AppDataSource.getRepository(viewRegistryOfficer) const [lists, total] = await AppDataSource.getRepository(viewRegistryOfficer)
.createQueryBuilder("registryOfficer") .createQueryBuilder("registryOfficer")
.where(nodeCondition, { .where(nodeCondition, {
@ -253,6 +259,10 @@ export class ReportController extends Controller {
startDateAppoint: dateStart?.toISOString().split("T")[0], startDateAppoint: dateStart?.toISOString().split("T")[0],
endDateAppoint: dateEnd?.toISOString().split("T")[0], endDateAppoint: dateEnd?.toISOString().split("T")[0],
}) })
.andWhere(retireLawCondition, {
startDateRetireLaw: new Date(new Date().getFullYear() - 1, 9, 1, 0, 0, 0, 0)?.toISOString().split("T")[0],
endDateRetireLaw: new Date(new Date().getFullYear(), 8, 30, 23, 59, 59, 999).toISOString().split("T")[0],
})
.andWhere("registryOfficer.isProbation = :isProbation", { .andWhere("registryOfficer.isProbation = :isProbation", {
isProbation: isProbation, isProbation: isProbation,
}) })
@ -345,6 +355,8 @@ export class ReportController extends Controller {
gender: x.gender, gender: x.gender,
relationship: x.relationship, relationship: x.relationship,
dateAppoint: x.dateAppoint, dateAppoint: x.dateAppoint,
dateRetire: x.dateRetire,
dateRetireLaw: x.dateRetireLaw,
birthdate: x.birthdate, birthdate: x.birthdate,
degree: x.degree, degree: x.degree,
age: x.age, age: x.age,
@ -488,6 +500,7 @@ export class ReportController extends Controller {
@Query() dateEnd?: Date, @Query() dateEnd?: Date,
@Query() isProbation?: boolean, @Query() isProbation?: boolean,
@Query() isRetire?: boolean, @Query() isRetire?: boolean,
@Query() isRetireLaw?: boolean,
@Query() retireType?: string, @Query() retireType?: string,
@Query() ageMin?: number, @Query() ageMin?: number,
@Query() ageMax?: number, @Query() ageMax?: number,
@ -537,11 +550,17 @@ export class ReportController extends Controller {
const IsLeavecondition = ["registryEmployee.isLeave = :isLeave"]; const IsLeavecondition = ["registryEmployee.isLeave = :isLeave"];
const parameters: any = { isLeave: isRetire }; const parameters: any = { isLeave: isRetire };
if (retireType && retireType.trim() !== "") { if (retireType && retireType.trim() !== "") {
IsLeavecondition.push("registryEmployee.leaveType = :retireType"); IsLeavecondition.push("registryEmployee.leaveType = :retireType");
parameters.retireType = retireType; parameters.retireType = retireType;
} }
let retireLawCondition = "1=1";
if(isRetireLaw) {
retireLawCondition =
"DATE(registryEmployee.dateRetireLaw) >= :startDateRetireLaw AND DATE(registryEmployee.dateRetireLaw) <= :endDateRetireLaw";
}
const [lists, total] = await AppDataSource.getRepository(viewRegistryEmployee) const [lists, total] = await AppDataSource.getRepository(viewRegistryEmployee)
.createQueryBuilder("registryEmployee") .createQueryBuilder("registryEmployee")
.where(nodeCondition, { .where(nodeCondition, {
@ -555,6 +574,10 @@ export class ReportController extends Controller {
startDateAppoint: dateStart?.toISOString().split("T")[0], startDateAppoint: dateStart?.toISOString().split("T")[0],
endDateAppoint: dateEnd?.toISOString().split("T")[0], endDateAppoint: dateEnd?.toISOString().split("T")[0],
}) })
.andWhere(retireLawCondition, {
startDateRetireLaw: new Date(new Date().getFullYear() - 1, 9, 1, 0, 0, 0, 0)?.toISOString().split("T")[0],
endDateRetireLaw: new Date(new Date().getFullYear(), 8, 30, 23, 59, 59, 999).toISOString().split("T")[0],
})
.andWhere("registryEmployee.isProbation = :isProbation", { .andWhere("registryEmployee.isProbation = :isProbation", {
isProbation: isProbation, isProbation: isProbation,
}) })
@ -562,7 +585,7 @@ export class ReportController extends Controller {
.andWhere("registryEmployee.employeeClass = 'PERM'") .andWhere("registryEmployee.employeeClass = 'PERM'")
.andWhere( .andWhere(
posType != null && posType != "" posType != null && posType != ""
? "registryOfficer.posTypeName LIKE :posTypeName" ? "registryEmployee.posTypeName LIKE :posTypeName"
: "1=1", : "1=1",
{ {
posTypeName: `%${posType}%`, posTypeName: `%${posType}%`,
@ -570,7 +593,7 @@ export class ReportController extends Controller {
) )
.andWhere( .andWhere(
posLevel != null && posLevel != "" posLevel != null && posLevel != ""
? "registryOfficer.posLevelName LIKE :posLevelName" ? "registryEmployee.posLevelName LIKE :posLevelName"
: "1=1", : "1=1",
{ {
posLevelName: `%${posLevel}%`, posLevelName: `%${posLevel}%`,
@ -578,7 +601,7 @@ export class ReportController extends Controller {
) )
.andWhere( .andWhere(
position != null && position != "" position != null && position != ""
? "registryOfficer.position LIKE :position" ? "registryEmployee.position LIKE :position"
: "1=1", : "1=1",
{ {
position: `%${position}%`, position: `%${position}%`,
@ -586,7 +609,7 @@ export class ReportController extends Controller {
) )
.andWhere( .andWhere(
gender != null && gender != "" gender != null && gender != ""
? "registryOfficer.gender LIKE :gender" ? "registryEmployee.gender LIKE :gender"
: "1=1", : "1=1",
{ {
gender: `%${gender}%`, gender: `%${gender}%`,
@ -594,7 +617,7 @@ export class ReportController extends Controller {
) )
.andWhere( .andWhere(
status != null && status != "" status != null && status != ""
? "registryOfficer.relationship LIKE :relationship" ? "registryEmployee.relationship LIKE :relationship"
: "1=1", : "1=1",
{ {
relationship: `%${status}%`, relationship: `%${status}%`,
@ -602,7 +625,7 @@ export class ReportController extends Controller {
) )
.andWhere( .andWhere(
education != null && education != "" education != null && education != ""
? "registryOfficer.degree LIKE :degree" ? "registryEmployee.degree LIKE :degree"
: "1=1", : "1=1",
{ {
degree: `%${education}%`, degree: `%${education}%`,
@ -639,6 +662,8 @@ export class ReportController extends Controller {
gender: x.gender, gender: x.gender,
relationship: x.relationship, relationship: x.relationship,
dateAppoint: x.dateAppoint, dateAppoint: x.dateAppoint,
dateRetire: x.dateRetire,
dateRetireLaw: x.dateRetireLaw,
birthdate: x.birthdate, birthdate: x.birthdate,
degree: x.degree, degree: x.degree,
age: x.age, age: x.age,

View file

@ -185,6 +185,12 @@ export class viewRegistryEmployee {
@ViewColumn() @ViewColumn()
dateAppoint: Date; dateAppoint: Date;
@ViewColumn()
dateRetire: Date;
@ViewColumn()
dateRetireLaw: Date;
@ViewColumn() @ViewColumn()
birthdate: Date; birthdate: Date;

View file

@ -193,6 +193,12 @@ export class viewRegistryOfficer {
@ViewColumn() @ViewColumn()
dateAppoint: Date; dateAppoint: Date;
@ViewColumn()
dateRetire: Date;
@ViewColumn()
dateRetireLaw: Date;
@ViewColumn() @ViewColumn()
birthdate: Date; birthdate: Date;