สร้าง workflow
This commit is contained in:
parent
2b9cd85532
commit
238ab9dba2
3 changed files with 58 additions and 26 deletions
|
|
@ -14,6 +14,8 @@ import { StateUserComment } from "../entities/StateUserComment";
|
||||||
import { MetaWorkflow } from "../entities/MetaWorkflow";
|
import { MetaWorkflow } from "../entities/MetaWorkflow";
|
||||||
import { MetaState } from "../entities/MetaState";
|
import { MetaState } from "../entities/MetaState";
|
||||||
import { MetaStateOperator } from "../entities/MetaStateOperator";
|
import { MetaStateOperator } from "../entities/MetaStateOperator";
|
||||||
|
import { PosMasterAssign } from "../entities/PosMasterAssign";
|
||||||
|
import { PosMaster } from "../entities/PosMaster";
|
||||||
|
|
||||||
@Route("api/v1/org/workflow")
|
@Route("api/v1/org/workflow")
|
||||||
@Tags("Workflow")
|
@Tags("Workflow")
|
||||||
|
|
@ -29,6 +31,7 @@ export class WorkflowController extends Controller {
|
||||||
private metaWorkflowRepo = AppDataSource.getRepository(MetaWorkflow);
|
private metaWorkflowRepo = AppDataSource.getRepository(MetaWorkflow);
|
||||||
private metaStateRepo = AppDataSource.getRepository(MetaState);
|
private metaStateRepo = AppDataSource.getRepository(MetaState);
|
||||||
private metaStateOperatorRepo = AppDataSource.getRepository(MetaStateOperator);
|
private metaStateOperatorRepo = AppDataSource.getRepository(MetaStateOperator);
|
||||||
|
private posMasterRepo = AppDataSource.getRepository(PosMaster);
|
||||||
|
|
||||||
@Post("add-workflow")
|
@Post("add-workflow")
|
||||||
public async checkWorkflow(
|
public async checkWorkflow(
|
||||||
|
|
@ -66,12 +69,19 @@ export class WorkflowController extends Controller {
|
||||||
lastUpdatedAt: new Date(),
|
lastUpdatedAt: new Date(),
|
||||||
};
|
};
|
||||||
const workflow = new Workflow();
|
const workflow = new Workflow();
|
||||||
Object.assign(workflow, { ...metaWorkflow, id: undefined, ...meta });
|
Object.assign(workflow, {
|
||||||
this.workflowRepo.save(workflow);
|
...metaWorkflow,
|
||||||
|
id: undefined,
|
||||||
|
...meta,
|
||||||
|
...body,
|
||||||
|
system: body.sysName,
|
||||||
|
});
|
||||||
|
await this.workflowRepo.save(workflow);
|
||||||
const metaState = await this.metaStateRepo.find({
|
const metaState = await this.metaStateRepo.find({
|
||||||
where: {
|
where: {
|
||||||
metaWorkflowId: metaWorkflow.id,
|
metaWorkflowId: metaWorkflow.id,
|
||||||
},
|
},
|
||||||
|
order: { order: "ASC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
|
|
@ -79,15 +89,19 @@ export class WorkflowController extends Controller {
|
||||||
const state = new State();
|
const state = new State();
|
||||||
Object.assign(state, { ...item, id: undefined, workflowId: workflow.id, ...meta });
|
Object.assign(state, { ...item, id: undefined, workflowId: workflow.id, ...meta });
|
||||||
await this.stateRepo.save(state);
|
await this.stateRepo.save(state);
|
||||||
|
if (state.order == 1) {
|
||||||
|
workflow.stateId = state.id;
|
||||||
|
await this.workflowRepo.save(workflow);
|
||||||
|
}
|
||||||
const metaStateOperator = await this.metaStateOperatorRepo.find({
|
const metaStateOperator = await this.metaStateOperatorRepo.find({
|
||||||
where: {
|
where: {
|
||||||
metaStateId: item.id,
|
metaStateId: item.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
metaStateOperator.map(async (item) => {
|
metaStateOperator.map(async (item1) => {
|
||||||
const stateOperator = new StateOperator();
|
const stateOperator = new StateOperator();
|
||||||
Object.assign(stateOperator, { ...item, id: undefined, stateId: state.id, ...meta });
|
Object.assign(stateOperator, { ...item1, id: undefined, stateId: state.id, ...meta });
|
||||||
await this.stateOperatorRepo.save(stateOperator);
|
await this.stateOperatorRepo.save(stateOperator);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
@ -97,12 +111,46 @@ export class WorkflowController extends Controller {
|
||||||
const stateOperatorUser = new StateOperatorUser();
|
const stateOperatorUser = new StateOperatorUser();
|
||||||
Object.assign(stateOperatorUser, {
|
Object.assign(stateOperatorUser, {
|
||||||
profileId: profile.id,
|
profileId: profile.id,
|
||||||
operator: "OWNER",
|
operator: "Owner",
|
||||||
order: 1,
|
order: 1,
|
||||||
workflowId: workflow.id,
|
workflowId: workflow.id,
|
||||||
...meta,
|
...meta,
|
||||||
});
|
});
|
||||||
await this.stateOperatorUserRepo.save(stateOperatorUser);
|
await this.stateOperatorUserRepo.save(stateOperatorUser);
|
||||||
|
|
||||||
|
const profileOfficer = await this.posMasterRepo.find({
|
||||||
|
where: {
|
||||||
|
posMasterAssigns: { assignId: body.sysName },
|
||||||
|
orgRevision: { orgRevisionIsDraft: false, orgRevisionIsCurrent: true },
|
||||||
|
},
|
||||||
|
relations: ["orgChild1"],
|
||||||
|
});
|
||||||
|
await Promise.all(
|
||||||
|
profileOfficer.map(async (item, i) => {
|
||||||
|
if (item.orgChild1 == null || item.orgChild1.isOfficer == false) {
|
||||||
|
const stateOperatorUser = new StateOperatorUser();
|
||||||
|
Object.assign(stateOperatorUser, {
|
||||||
|
profileId: profile.id,
|
||||||
|
operator: "Officer",
|
||||||
|
order: i + 2,
|
||||||
|
workflowId: workflow.id,
|
||||||
|
...meta,
|
||||||
|
});
|
||||||
|
await this.stateOperatorUserRepo.save(stateOperatorUser);
|
||||||
|
} else {
|
||||||
|
const stateOperatorUser = new StateOperatorUser();
|
||||||
|
Object.assign(stateOperatorUser, {
|
||||||
|
profileId: profile.id,
|
||||||
|
operator: "PersonnelOfficer",
|
||||||
|
order: i + 2,
|
||||||
|
workflowId: workflow.id,
|
||||||
|
...meta,
|
||||||
|
});
|
||||||
|
await this.stateOperatorUserRepo.save(stateOperatorUser);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -174,7 +222,7 @@ export class WorkflowController extends Controller {
|
||||||
const workflow = await this.workflowRepo.findOne({
|
const workflow = await this.workflowRepo.findOne({
|
||||||
where: {
|
where: {
|
||||||
refId: body.refId,
|
refId: body.refId,
|
||||||
system: body.system,
|
sysName: body.system,
|
||||||
},
|
},
|
||||||
relations: ["stateOperatorUsers"],
|
relations: ["stateOperatorUsers"],
|
||||||
});
|
});
|
||||||
|
|
@ -207,7 +255,7 @@ export class WorkflowController extends Controller {
|
||||||
where: {
|
where: {
|
||||||
workflow: {
|
workflow: {
|
||||||
refId: body.refId,
|
refId: body.refId,
|
||||||
system: body.system,
|
sysName: body.system,
|
||||||
},
|
},
|
||||||
profile: {
|
profile: {
|
||||||
keycloak: req.user.sub,
|
keycloak: req.user.sub,
|
||||||
|
|
@ -254,7 +302,7 @@ export class WorkflowController extends Controller {
|
||||||
where: {
|
where: {
|
||||||
workflow: {
|
workflow: {
|
||||||
refId: body.refId,
|
refId: body.refId,
|
||||||
system: body.system,
|
sysName: body.system,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
order: { order: "ASC", stateUserComments: { order: "ASC" } },
|
order: { order: "ASC", stateUserComments: { order: "ASC" } },
|
||||||
|
|
@ -282,7 +330,7 @@ export class WorkflowController extends Controller {
|
||||||
where: {
|
where: {
|
||||||
workflow: {
|
workflow: {
|
||||||
refId: body.refId,
|
refId: body.refId,
|
||||||
system: body.system,
|
sysName: body.system,
|
||||||
},
|
},
|
||||||
profile: {
|
profile: {
|
||||||
keycloak: req.user.sub,
|
keycloak: req.user.sub,
|
||||||
|
|
@ -295,7 +343,7 @@ export class WorkflowController extends Controller {
|
||||||
const workflow = await this.workflowRepo.findOne({
|
const workflow = await this.workflowRepo.findOne({
|
||||||
where: {
|
where: {
|
||||||
refId: body.refId,
|
refId: body.refId,
|
||||||
system: body.system,
|
sysName: body.system,
|
||||||
},
|
},
|
||||||
relations: ["stateOperatorUsers"],
|
relations: ["stateOperatorUsers"],
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -21,14 +21,6 @@ export class StateOperatorUser extends EntityBase {
|
||||||
})
|
})
|
||||||
order: number;
|
order: number;
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ผู้ดำเนินการ",
|
|
||||||
length: 255,
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
refId: string;
|
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
nullable: true,
|
nullable: true,
|
||||||
length: 40,
|
length: 40,
|
||||||
|
|
|
||||||
|
|
@ -13,14 +13,6 @@ export class Workflow extends EntityBase {
|
||||||
})
|
})
|
||||||
refId: string;
|
refId: string;
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "system",
|
|
||||||
length: 255,
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
system: string;
|
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
nullable: true,
|
nullable: true,
|
||||||
comment: "ชื่อ flow",
|
comment: "ชื่อ flow",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue