Merge branch 'develop' into adiDev
This commit is contained in:
commit
c6dd2632d5
7 changed files with 142 additions and 6 deletions
|
|
@ -17,8 +17,10 @@ import HttpError from "../interfaces/http-error";
|
|||
import HttpStatus from "../interfaces/http-status";
|
||||
import HttpSuccess from "../interfaces/http-success";
|
||||
import HttpStatusCode from "../interfaces/http-status";
|
||||
import { AuthRole, CreateAuthRole, UpdateAuthRole } from "../entities/AuthRole";
|
||||
import { AuthRole, CreateAuthRole, UpdateAuthRole, CreateAddAuthRole } from "../entities/AuthRole";
|
||||
import { AuthRoleAttr } from "../entities/AuthRoleAttr";
|
||||
import { PosMaster } from "../entities/PosMaster";
|
||||
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||
|
||||
@Route("api/v1/org/auth/authRole")
|
||||
@Tags("AuthRole")
|
||||
|
|
@ -72,6 +74,12 @@ export class AuthRoleController extends Controller {
|
|||
return new HttpSuccess(data.id);
|
||||
}
|
||||
|
||||
@Post("assign")
|
||||
public async AddAuthRole(@Request() req: RequestWithUser, @Body() body: CreateAddAuthRole) {
|
||||
// console pasMater = await this
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
@Patch("{roleId}")
|
||||
public async editAuthRole(
|
||||
@Request() req: RequestWithUser,
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ import { OrgChild1 } from "../entities/OrgChild1";
|
|||
import { OrgChild2 } from "../entities/OrgChild2";
|
||||
import { OrgChild3 } from "../entities/OrgChild3";
|
||||
import { OrgChild4 } from "../entities/OrgChild4";
|
||||
|
||||
import CallAPI from "../interfaces/call-api";
|
||||
@Route("api/v1/org/placement/change-position")
|
||||
@Tags("Placement")
|
||||
@Security("bearerAuth")
|
||||
|
|
@ -163,6 +163,7 @@ export class ChangePositionController extends Controller {
|
|||
) {
|
||||
const [changePosition, total] = await AppDataSource.getRepository(ChangePosition)
|
||||
.createQueryBuilder("changePosition")
|
||||
.leftJoinAndSelect("changePosition.profileChangePosition", "profileChangePosition")
|
||||
.where(
|
||||
searchKeyword ?
|
||||
"changePosition.name LIKE :keyword OR changePosition.date LIKE :keyword OR changePosition.status LIKE :keyword"
|
||||
|
|
@ -187,7 +188,10 @@ export class ChangePositionController extends Controller {
|
|||
@Get("{id}")
|
||||
async GetChangePositionById( @Path() id: string ) {
|
||||
|
||||
const data = await this.changePositionRepository.findOne({ where: { id: id }});
|
||||
const data = await this.changePositionRepository.findOne({
|
||||
relations: ["profileChangePosition"],
|
||||
where: { id: id }}
|
||||
);
|
||||
if (!data) throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลรอบย้ายสับเปลี่ยนตำแหน่ง");
|
||||
return new HttpSuccess(data);
|
||||
}
|
||||
|
|
@ -335,9 +339,10 @@ export class ChangePositionController extends Controller {
|
|||
profileChangePos.posMasterNoOld = body.posMasterNoOld;
|
||||
profileChangePos.positionTypeOld = body.positionTypeOld;
|
||||
profileChangePos.positionLevelOld = body.positionLevelOld;
|
||||
profileChangePos.positionNumberOld = body.positionNumberOld;
|
||||
profileChangePos.organizationPositionOld = body.organizationPositionOld;
|
||||
profileChangePos.amountOld = body.amountOld;
|
||||
profileChangePos.reason = body.reason? String(body.reason) : "";
|
||||
profileChangePos.dateCurrent = body.dateCurrent;
|
||||
await this.profileChangePositionRepository.save(profileChangePos);
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
|
@ -465,5 +470,70 @@ export class ChangePositionController extends Controller {
|
|||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* API ออกคำสั่งย้ายสับเปลี่ยนตำแหน่ง REPORT
|
||||
*
|
||||
* @summary API ออกคำสั่งย้ายสับเปลี่ยนตำแหน่ง REPORT (ADMIN)
|
||||
*
|
||||
*/
|
||||
@Post("report")
|
||||
async sendReport(@Request() request: RequestWithUser, @Body() requestBody: { id: string[] }) {
|
||||
const profilechangePositions = await this.changePositionRepository.find({
|
||||
relations: ["profileChangePosition"],
|
||||
where: { id: In(requestBody.id) }
|
||||
});
|
||||
|
||||
for (const item of profilechangePositions) {
|
||||
item.status = "REPORT";
|
||||
item.lastUpdateUserId = request.user.sub;
|
||||
item.lastUpdateFullName = request.user.name;
|
||||
if (item.profileChangePosition) {
|
||||
for (const profile of item.profileChangePosition) {
|
||||
profile.status = "REPORT";
|
||||
profile.lastUpdateUserId = request.user.sub;
|
||||
profile.lastUpdateFullName = request.user.name;
|
||||
await this.profileChangePositionRepository.save(profile);
|
||||
}
|
||||
}
|
||||
await this.changePositionRepository.save(item);
|
||||
}
|
||||
return new HttpSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* API ออกคำสั่งย้ายสับเปลี่ยนตำแหน่ง DONE
|
||||
*
|
||||
* @summary API ออกคำสั่งย้ายสับเปลี่ยนตำแหน่ง DONE (ADMIN)
|
||||
*
|
||||
*/
|
||||
@Post("report/resume")
|
||||
async doneReport(
|
||||
@Body()
|
||||
body: {
|
||||
result: {
|
||||
id: string;
|
||||
}[];
|
||||
},
|
||||
@Request() request: { user: Record<string, any> },
|
||||
) {
|
||||
await Promise.all(
|
||||
body.result.map(async (v) => {
|
||||
const profile = await this.profileChangePositionRepository.findOne({
|
||||
where: { id: v.id }
|
||||
});
|
||||
if (profile != null) {
|
||||
await new CallAPI()
|
||||
.PostData(request, "org/profile/salary", {
|
||||
profileId: profile.id,
|
||||
date: new Date(),
|
||||
})
|
||||
.then(async (x) => {
|
||||
profile.status = "DONE";
|
||||
await this.profileChangePositionRepository.save(profile);
|
||||
});
|
||||
}
|
||||
}),
|
||||
);
|
||||
return new HttpSuccess();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
import { Entity, Column, OneToMany } from "typeorm";
|
||||
import { Entity, Column, OneToMany, OneToOne } from "typeorm";
|
||||
import { EntityBase } from "./base/Base";
|
||||
import { AuthRoleAttr } from "./AuthRoleAttr";
|
||||
import { PosMaster } from "./PosMaster";
|
||||
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||
|
||||
@Entity("authRole")
|
||||
export class AuthRole extends EntityBase {
|
||||
|
|
@ -22,6 +24,12 @@ export class AuthRole extends EntityBase {
|
|||
|
||||
@OneToMany(() => AuthRoleAttr, (authRoleAttr) => authRoleAttr.authRoleAttrForRole)
|
||||
authRoles: AuthRoleAttr[];
|
||||
|
||||
@OneToOne(() => PosMaster, (posMaster) => posMaster.authRole)
|
||||
posMaster: PosMaster;
|
||||
|
||||
@OneToOne(() => EmployeePosMaster, (posMasters) => posMasters.authRole)
|
||||
posMasters: EmployeePosMaster;
|
||||
}
|
||||
|
||||
export class CreateAuthRole {
|
||||
|
|
@ -33,3 +41,11 @@ export class CreateAuthRole {
|
|||
}
|
||||
|
||||
export type UpdateAuthRole = Partial<CreateAuthRole>;
|
||||
|
||||
export class CreateAddAuthRole {
|
||||
@Column()
|
||||
authRoleId: string;
|
||||
|
||||
@Column()
|
||||
posMasterId: string;
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import { OrgChild3 } from "./OrgChild3";
|
|||
import { OrgChild4 } from "./OrgChild4";
|
||||
import { Profile } from "./Profile";
|
||||
import { ProfileEmployee } from "./ProfileEmployee";
|
||||
import { AuthRole } from "./AuthRole";
|
||||
|
||||
enum EmployeePosMasterLine {
|
||||
MAIN = "MAIN",
|
||||
|
|
@ -171,6 +172,16 @@ export class EmployeePosMaster extends EntityBase {
|
|||
})
|
||||
orgRevisionId: string; //fk
|
||||
|
||||
@Column({
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง authRole",
|
||||
})
|
||||
authRoleId: string;
|
||||
|
||||
@OneToOne(() => AuthRole, (authRole) => authRole.posMasters)
|
||||
@JoinColumn({ name: "authRoleId" })
|
||||
authRole: AuthRole;
|
||||
|
||||
@ManyToOne(() => OrgRevision, (orgRevision) => orgRevision.posMasters)
|
||||
@JoinColumn({ name: "orgRevisionId" })
|
||||
orgRevision: OrgRevision;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import { OrgChild2 } from "./OrgChild2";
|
|||
import { OrgChild3 } from "./OrgChild3";
|
||||
import { OrgChild4 } from "./OrgChild4";
|
||||
import { Profile } from "./Profile";
|
||||
import { AuthRole } from "./AuthRole";
|
||||
|
||||
enum PosMasterLine {
|
||||
MAIN = "MAIN",
|
||||
|
|
@ -170,6 +171,16 @@ export class PosMaster extends EntityBase {
|
|||
})
|
||||
orgRevisionId: string; //fk
|
||||
|
||||
@Column({
|
||||
length: 40,
|
||||
comment: "คีย์นอก(FK)ของตาราง authRole",
|
||||
})
|
||||
authRoleId: string;
|
||||
|
||||
@OneToOne(() => AuthRole, (authRole) => authRole.posMaster)
|
||||
@JoinColumn({ name: "authRoleId" })
|
||||
authRole: AuthRole;
|
||||
|
||||
@ManyToOne(() => OrgRevision, (orgRevision) => orgRevision.posMasters)
|
||||
@JoinColumn({ name: "orgRevisionId" })
|
||||
orgRevision: OrgRevision;
|
||||
|
|
|
|||
|
|
@ -255,7 +255,7 @@ export type UpdateProfileChangePosition = {
|
|||
posMasterNoOld: number;
|
||||
positionTypeOld: string;
|
||||
positionLevelOld: string;
|
||||
positionNumberOld: string;
|
||||
organizationPositionOld: string;
|
||||
amountOld: number;
|
||||
dateCurrent : Date;
|
||||
reason: string | null;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UpdateTablePosmasterAddRole1718263333866 implements MigrationInterface {
|
||||
name = 'UpdateTablePosmasterAddRole1718263333866'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`posMaster\` ADD \`authRoleId\` varchar(40) NOT NULL COMMENT 'คีย์นอก(FK)ของตาราง authRole'`);
|
||||
await queryRunner.query(`ALTER TABLE \`posMaster\` ADD UNIQUE INDEX \`IDX_a059796d095e79ba5b20407859\` (\`authRoleId\`)`);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX \`REL_a059796d095e79ba5b20407859\` ON \`posMaster\` (\`authRoleId\`)`);
|
||||
await queryRunner.query(`ALTER TABLE \`posMaster\` ADD CONSTRAINT \`FK_a059796d095e79ba5b20407859f\` FOREIGN KEY (\`authRoleId\`) REFERENCES \`authRole\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`posMaster\` DROP FOREIGN KEY \`FK_a059796d095e79ba5b20407859f\``);
|
||||
await queryRunner.query(`DROP INDEX \`REL_a059796d095e79ba5b20407859\` ON \`posMaster\``);
|
||||
await queryRunner.query(`ALTER TABLE \`posMaster\` DROP INDEX \`IDX_a059796d095e79ba5b20407859\``);
|
||||
await queryRunner.query(`ALTER TABLE \`posMaster\` DROP COLUMN \`authRoleId\``);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue