rez_core 2.2.8 → 2.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constant/global.constant.d.ts +2 -1
- package/dist/constant/global.constant.js +3 -2
- package/dist/constant/global.constant.js.map +1 -1
- package/dist/module/filter/controller/filter.controller.d.ts +1 -1
- package/dist/module/filter/controller/filter.controller.js +7 -4
- package/dist/module/filter/controller/filter.controller.js.map +1 -1
- package/dist/module/filter/dto/filter-request.dto.d.ts +1 -0
- package/dist/module/filter/service/filter.service.js +25 -3
- package/dist/module/filter/service/filter.service.js.map +1 -1
- package/dist/module/layout_preference/controller/layout_preference.controller.js +4 -4
- package/dist/module/layout_preference/controller/layout_preference.controller.js.map +1 -1
- package/dist/module/layout_preference/entity/layout_preference.entity.d.ts +2 -0
- package/dist/module/layout_preference/entity/layout_preference.entity.js +13 -0
- package/dist/module/layout_preference/entity/layout_preference.entity.js.map +1 -1
- package/dist/module/layout_preference/repository/layout_preference.repository.d.ts +1 -1
- package/dist/module/layout_preference/repository/layout_preference.repository.js +4 -2
- package/dist/module/layout_preference/repository/layout_preference.repository.js.map +1 -1
- package/dist/module/layout_preference/service/layout_preference.service.d.ts +1 -1
- package/dist/module/layout_preference/service/layout_preference.service.js +17 -4
- package/dist/module/layout_preference/service/layout_preference.service.js.map +1 -1
- package/dist/module/listmaster/entity/list-master-items.entity.js +5 -5
- package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
- package/dist/module/meta/controller/media.controller.d.ts +1 -1
- package/dist/module/meta/controller/media.controller.js +1 -1
- package/dist/module/meta/controller/media.controller.js.map +1 -1
- package/dist/module/meta/entity/base-entity.entity.js.map +1 -1
- package/dist/module/module/controller/module-access.controller.d.ts +1 -1
- package/dist/module/module/controller/module-access.controller.js +6 -6
- package/dist/module/module/controller/module-access.controller.js.map +1 -1
- package/dist/module/module/service/module-access.service.d.ts +2 -1
- package/dist/module/module/service/module-access.service.js +5 -3
- package/dist/module/module/service/module-access.service.js.map +1 -1
- package/dist/module/workflow/controller/action-category.controller.d.ts +8 -0
- package/dist/module/workflow/controller/action-category.controller.js +45 -0
- package/dist/module/workflow/controller/action-category.controller.js.map +1 -0
- package/dist/module/workflow/controller/action.controller.d.ts +28 -0
- package/dist/module/workflow/controller/action.controller.js +88 -0
- package/dist/module/workflow/controller/action.controller.js.map +1 -0
- package/dist/module/workflow/controller/comm-template.controller.d.ts +11 -0
- package/dist/module/workflow/controller/comm-template.controller.js +44 -0
- package/dist/module/workflow/controller/comm-template.controller.js.map +1 -0
- package/dist/module/workflow/controller/entity-modification.controller.d.ts +8 -0
- package/dist/module/workflow/controller/entity-modification.controller.js +44 -0
- package/dist/module/workflow/controller/entity-modification.controller.js.map +1 -0
- package/dist/module/workflow/controller/stage-group.controller.d.ts +10 -0
- package/dist/module/workflow/controller/stage-group.controller.js +43 -0
- package/dist/module/workflow/controller/stage-group.controller.js.map +1 -0
- package/dist/module/workflow/controller/stage.controller.d.ts +13 -0
- package/dist/module/workflow/controller/stage.controller.js +56 -0
- package/dist/module/workflow/controller/stage.controller.js.map +1 -0
- package/dist/module/workflow/controller/task.controller.d.ts +21 -0
- package/dist/module/workflow/controller/task.controller.js +58 -0
- package/dist/module/workflow/controller/task.controller.js.map +1 -0
- package/dist/module/workflow/controller/workflow-meta.controller.d.ts +15 -0
- package/dist/module/workflow/controller/workflow-meta.controller.js +70 -0
- package/dist/module/workflow/controller/workflow-meta.controller.js.map +1 -0
- package/dist/module/workflow/controller/workflow.controller.d.ts +25 -10
- package/dist/module/workflow/controller/workflow.controller.js +32 -15
- package/dist/module/workflow/controller/workflow.controller.js.map +1 -1
- package/dist/module/workflow/entity/action-category.entity.d.ts +1 -0
- package/dist/module/workflow/entity/action-category.entity.js +4 -0
- package/dist/module/workflow/entity/action-category.entity.js.map +1 -1
- package/dist/module/workflow/entity/action-data.entity.d.ts +15 -0
- package/dist/module/workflow/entity/action-data.entity.js +70 -0
- package/dist/module/workflow/entity/action-data.entity.js.map +1 -0
- package/dist/module/workflow/entity/action.entity.d.ts +7 -2
- package/dist/module/workflow/entity/action.entity.js +30 -10
- package/dist/module/workflow/entity/action.entity.js.map +1 -1
- package/dist/module/workflow/entity/comm-template.entity.d.ts +5 -0
- package/dist/module/workflow/entity/comm-template.entity.js +21 -1
- package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
- package/dist/module/workflow/entity/entity-modification.entity.d.ts +13 -0
- package/dist/module/workflow/entity/entity-modification.entity.js +63 -0
- package/dist/module/workflow/entity/entity-modification.entity.js.map +1 -0
- package/dist/module/workflow/entity/stage-group.entity.d.ts +1 -1
- package/dist/module/workflow/entity/stage-group.entity.js +1 -1
- package/dist/module/workflow/entity/stage-group.entity.js.map +1 -1
- package/dist/module/workflow/entity/stage-movement-data.entity.d.ts +4 -0
- package/dist/module/workflow/entity/stage-movement-data.entity.js +16 -0
- package/dist/module/workflow/entity/stage-movement-data.entity.js.map +1 -1
- package/dist/module/workflow/entity/stage.entity.d.ts +2 -2
- package/dist/module/workflow/entity/stage.entity.js +5 -5
- package/dist/module/workflow/entity/stage.entity.js.map +1 -1
- package/dist/module/workflow/entity/task-data.entity.d.ts +25 -0
- package/dist/module/workflow/entity/task-data.entity.js +110 -0
- package/dist/module/workflow/entity/task-data.entity.js.map +1 -0
- package/dist/module/workflow/entity/template-attach-mapper.entity.d.ts +11 -0
- package/dist/module/workflow/entity/template-attach-mapper.entity.js +54 -0
- package/dist/module/workflow/entity/template-attach-mapper.entity.js.map +1 -0
- package/dist/module/workflow/entity/workflow-level-mapping.entity.d.ts +7 -0
- package/dist/module/workflow/entity/workflow-level-mapping.entity.js +38 -0
- package/dist/module/workflow/entity/workflow-level-mapping.entity.js.map +1 -0
- package/dist/module/workflow/entity/workflow.entity.d.ts +2 -0
- package/dist/module/workflow/entity/workflow.entity.js +8 -0
- package/dist/module/workflow/entity/workflow.entity.js.map +1 -1
- package/dist/module/workflow/repository/action-data.repository.d.ts +10 -0
- package/dist/module/workflow/repository/action-data.repository.js +85 -0
- package/dist/module/workflow/repository/action-data.repository.js.map +1 -0
- package/dist/module/workflow/repository/action.repository.d.ts +17 -0
- package/dist/module/workflow/repository/action.repository.js +97 -0
- package/dist/module/workflow/repository/action.repository.js.map +1 -0
- package/dist/module/workflow/repository/comm-template.repository.d.ts +14 -0
- package/dist/module/workflow/repository/comm-template.repository.js +87 -0
- package/dist/module/workflow/repository/comm-template.repository.js.map +1 -0
- package/dist/module/workflow/repository/stage-group.repository.d.ts +7 -0
- package/dist/module/workflow/repository/stage-group.repository.js +50 -0
- package/dist/module/workflow/repository/stage-group.repository.js.map +1 -0
- package/dist/module/workflow/repository/stage-movement.repository.d.ts +23 -0
- package/dist/module/workflow/repository/stage-movement.repository.js +142 -0
- package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -0
- package/dist/module/workflow/repository/stage.repository.d.ts +7 -0
- package/dist/module/workflow/repository/stage.repository.js +50 -0
- package/dist/module/workflow/repository/stage.repository.js.map +1 -0
- package/dist/module/workflow/repository/task.repository.d.ts +10 -0
- package/dist/module/workflow/repository/task.repository.js +77 -0
- package/dist/module/workflow/repository/task.repository.js.map +1 -0
- package/dist/module/workflow/repository/workflow.repository.d.ts +9 -1
- package/dist/module/workflow/repository/workflow.repository.js +38 -6
- package/dist/module/workflow/repository/workflow.repository.js.map +1 -1
- package/dist/module/workflow/service/action-category.service.d.ts +5 -0
- package/dist/module/workflow/service/action-category.service.js +23 -1
- package/dist/module/workflow/service/action-category.service.js.map +1 -1
- package/dist/module/workflow/service/action-data.service.d.ts +11 -0
- package/dist/module/workflow/service/action-data.service.js +36 -0
- package/dist/module/workflow/service/action-data.service.js.map +1 -0
- package/dist/module/workflow/service/action.service.d.ts +19 -1
- package/dist/module/workflow/service/action.service.js +159 -10
- package/dist/module/workflow/service/action.service.js.map +1 -1
- package/dist/module/workflow/service/comm-template.service.d.ts +11 -0
- package/dist/module/workflow/service/comm-template.service.js +59 -1
- package/dist/module/workflow/service/comm-template.service.js.map +1 -1
- package/dist/module/workflow/service/entity-modification.service.d.ts +8 -0
- package/dist/module/workflow/service/entity-modification.service.js +52 -0
- package/dist/module/workflow/service/entity-modification.service.js.map +1 -0
- package/dist/module/workflow/service/populate-workflow.service.d.ts +21 -0
- package/dist/module/workflow/service/populate-workflow.service.js +124 -0
- package/dist/module/workflow/service/populate-workflow.service.js.map +1 -0
- package/dist/module/workflow/service/stage-group.service.d.ts +13 -0
- package/dist/module/workflow/service/stage-group.service.js +39 -1
- package/dist/module/workflow/service/stage-group.service.js.map +1 -1
- package/dist/module/workflow/service/stage.service.d.ts +14 -4
- package/dist/module/workflow/service/stage.service.js +57 -13
- package/dist/module/workflow/service/stage.service.js.map +1 -1
- package/dist/module/workflow/service/task.service.d.ts +18 -0
- package/dist/module/workflow/service/task.service.js +63 -0
- package/dist/module/workflow/service/task.service.js.map +1 -0
- package/dist/module/workflow/service/workflow-list-master.service.js +4 -4
- package/dist/module/workflow/service/workflow-meta.service.d.ts +20 -0
- package/dist/module/workflow/service/workflow-meta.service.js +137 -0
- package/dist/module/workflow/service/workflow-meta.service.js.map +1 -0
- package/dist/module/workflow/service/workflow.service.d.ts +28 -5
- package/dist/module/workflow/service/workflow.service.js +108 -41
- package/dist/module/workflow/service/workflow.service.js.map +1 -1
- package/dist/module/workflow/workflow.module.js +82 -15
- package/dist/module/workflow/workflow.module.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/constant/global.constant.ts +3 -1
- package/src/module/filter/controller/filter.controller.ts +10 -4
- package/src/module/filter/dto/filter-request.dto.ts +1 -0
- package/src/module/filter/service/filter.service.ts +38 -4
- package/src/module/layout_preference/controller/layout_preference.controller.ts +6 -4
- package/src/module/layout_preference/entity/layout_preference.entity.ts +11 -0
- package/src/module/layout_preference/repository/layout_preference.repository.ts +6 -2
- package/src/module/layout_preference/service/layout_preference.service.ts +31 -6
- package/src/module/listmaster/entity/list-master-items.entity.ts +5 -5
- package/src/module/meta/controller/media.controller.ts +5 -7
- package/src/module/meta/entity/base-entity.entity.ts +1 -1
- package/src/module/module/controller/module-access.controller.ts +9 -4
- package/src/module/module/service/module-access.service.ts +15 -8
- package/src/module/workflow/controller/action-category.controller.ts +35 -0
- package/src/module/workflow/controller/action.controller.ts +73 -0
- package/src/module/workflow/controller/comm-template.controller.ts +32 -0
- package/src/module/workflow/controller/entity-modification.controller.ts +35 -0
- package/src/module/workflow/controller/stage-group.controller.ts +33 -0
- package/src/module/workflow/controller/stage.controller.ts +50 -0
- package/src/module/workflow/controller/task.controller.ts +57 -0
- package/src/module/workflow/controller/workflow-meta.controller.ts +76 -0
- package/src/module/workflow/controller/workflow.controller.ts +32 -12
- package/src/module/workflow/entity/action-category.entity.ts +3 -0
- package/src/module/workflow/entity/action-data.entity.ts +43 -0
- package/src/module/workflow/entity/action.entity.ts +18 -3
- package/src/module/workflow/entity/comm-template.entity.ts +18 -1
- package/src/module/workflow/entity/entity-modification.entity.ts +38 -0
- package/src/module/workflow/entity/stage-group.entity.ts +1 -1
- package/src/module/workflow/entity/stage-movement-data.entity.ts +12 -0
- package/src/module/workflow/entity/stage.entity.ts +4 -4
- package/src/module/workflow/entity/task-data.entity.ts +73 -0
- package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -0
- package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -0
- package/src/module/workflow/entity/workflow.entity.ts +6 -0
- package/src/module/workflow/repository/action-data.repository.ts +93 -0
- package/src/module/workflow/repository/action.repository.ts +104 -0
- package/src/module/workflow/repository/comm-template.repository.ts +102 -0
- package/src/module/workflow/repository/stage-group.repository.ts +46 -0
- package/src/module/workflow/repository/stage-movement.repository.ts +219 -0
- package/src/module/workflow/repository/stage.repository.ts +47 -0
- package/src/module/workflow/repository/task.repository.ts +85 -0
- package/src/module/workflow/repository/workflow.repository.ts +40 -2
- package/src/module/workflow/service/action-category.service.ts +26 -1
- package/src/module/workflow/service/action-data.service.ts +45 -0
- package/src/module/workflow/service/action-template-mapping.service.ts +1 -1
- package/src/module/workflow/service/action.service.ts +279 -19
- package/src/module/workflow/service/comm-template.service.ts +90 -1
- package/src/module/workflow/service/entity-modification.service.ts +67 -0
- package/src/module/workflow/service/populate-workflow.service.ts +189 -0
- package/src/module/workflow/service/stage-group.service.ts +67 -2
- package/src/module/workflow/service/stage.service.ts +104 -28
- package/src/module/workflow/service/task.service.ts +95 -0
- package/src/module/workflow/service/workflow-list-master.service.ts +4 -4
- package/src/module/workflow/service/workflow-meta.service.ts +231 -0
- package/src/module/workflow/service/workflow.service.ts +181 -50
- package/src/module/workflow/workflow.module.ts +82 -15
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { PopulateMetaService } from './../../meta/service/populate-meta.service';
|
|
3
|
+
import { Inject, Injectable } from '@nestjs/common';
|
|
4
|
+
import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
|
|
5
|
+
import { WorkflowService } from './workflow.service';
|
|
6
|
+
import { UserData } from 'src/module/user/entity/user.entity';
|
|
7
|
+
import { StageGroupService } from './stage-group.service';
|
|
8
|
+
import { StageService } from './stage.service';
|
|
9
|
+
import { ActionService } from './action.service';
|
|
10
|
+
|
|
11
|
+
@Injectable()
|
|
12
|
+
export class PopulateWorkflowService extends EntityServiceImpl {
|
|
13
|
+
constructor(
|
|
14
|
+
private readonly populateMetaService: PopulateMetaService,
|
|
15
|
+
private readonly dataSource: DataSource,
|
|
16
|
+
@Inject('WorkflowService')
|
|
17
|
+
private readonly workflowService: WorkflowService,
|
|
18
|
+
@Inject('StageGroupService')
|
|
19
|
+
private readonly stageGroupService: StageGroupService,
|
|
20
|
+
@Inject('StageService')
|
|
21
|
+
private readonly stageService: StageService,
|
|
22
|
+
@Inject('ActionService')
|
|
23
|
+
private readonly actionService: ActionService,
|
|
24
|
+
) {
|
|
25
|
+
super();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// async populateWorkflowData(organization_id: number, loggedInUser: UserData) {
|
|
29
|
+
// // Define workflow tables
|
|
30
|
+
// const workflowTables = [
|
|
31
|
+
// { table: 'cr_workflow', entityType: 'WRFW', service: 'workflowService' },
|
|
32
|
+
// {
|
|
33
|
+
// table: 'cr_wf_stage_group',
|
|
34
|
+
// entityType: 'STGP',
|
|
35
|
+
// service: 'stageGroupService',
|
|
36
|
+
// },
|
|
37
|
+
// { table: 'cr_wf_stage', entityType: 'STG', service: 'stageService' },
|
|
38
|
+
// { table: 'cr_wf_action', entityType: 'ACTN', service: 'actionService' },
|
|
39
|
+
// ];
|
|
40
|
+
|
|
41
|
+
// const getAllFactoryData = async (table: { table: string }) => {
|
|
42
|
+
// return this.dataSource.query(
|
|
43
|
+
// `SELECT * FROM ${table.table} WHERE organization_id = -1 AND level_type = 'ORG' AND level_id = -1`,
|
|
44
|
+
// );
|
|
45
|
+
// };
|
|
46
|
+
|
|
47
|
+
// const factoryData = await Promise.all(
|
|
48
|
+
// workflowTables.map((table) => getAllFactoryData(table)),
|
|
49
|
+
// );
|
|
50
|
+
|
|
51
|
+
// // Step 1: Insert workflow metadata
|
|
52
|
+
// for (let i = 0; i < workflowTables.length; i++) {
|
|
53
|
+
// const table = workflowTables[i];
|
|
54
|
+
// const data = factoryData[i];
|
|
55
|
+
|
|
56
|
+
// if (!data.length) continue;
|
|
57
|
+
|
|
58
|
+
// // Clean and transform data for insertion
|
|
59
|
+
// const transformedData = data.map((row) => {
|
|
60
|
+
// const { id, created_date, modified_date, ...rest } = row;
|
|
61
|
+
// return {
|
|
62
|
+
// ...rest,
|
|
63
|
+
// organization_id: organization_id,
|
|
64
|
+
// level_id: organization_id,
|
|
65
|
+
// entity_type: table.entityType,
|
|
66
|
+
// };
|
|
67
|
+
// });
|
|
68
|
+
|
|
69
|
+
// const service = this[table.service];
|
|
70
|
+
|
|
71
|
+
// for (const record of transformedData) {
|
|
72
|
+
// await service.createEntity(record, loggedInUser);
|
|
73
|
+
// }
|
|
74
|
+
// }
|
|
75
|
+
|
|
76
|
+
// return {
|
|
77
|
+
// message: 'Workflow data populated successfully',
|
|
78
|
+
// status: 'success',
|
|
79
|
+
// };
|
|
80
|
+
// }
|
|
81
|
+
|
|
82
|
+
async populateWorkflowData(organization_id: number, loggedInUser: UserData) {
|
|
83
|
+
const workflowTables = [
|
|
84
|
+
{ table: 'cr_workflow', entityType: 'WRFW', service: 'workflowService' },
|
|
85
|
+
{
|
|
86
|
+
table: 'cr_wf_stage_group',
|
|
87
|
+
entityType: 'STGP',
|
|
88
|
+
service: 'stageGroupService',
|
|
89
|
+
},
|
|
90
|
+
{ table: 'cr_wf_stage', entityType: 'STG', service: 'stageService' },
|
|
91
|
+
{ table: 'cr_wf_action', entityType: 'ACTN', service: 'actionService' },
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
// Fetch all base data
|
|
95
|
+
const getAllFactoryData = async (table: { table: string }) =>
|
|
96
|
+
this.dataSource.query(
|
|
97
|
+
`SELECT * FROM ${table.table} WHERE organization_id = -1 AND level_type = 'ORG' AND level_id = -1`,
|
|
98
|
+
);
|
|
99
|
+
const factoryData = await Promise.all(
|
|
100
|
+
workflowTables.map(getAllFactoryData),
|
|
101
|
+
);
|
|
102
|
+
const [workflows, stageGroups, stages, actions] = factoryData;
|
|
103
|
+
|
|
104
|
+
// === 1. Workflow mapping
|
|
105
|
+
const workflowIdMap: Record<number, number> = {};
|
|
106
|
+
for (const row of workflows) {
|
|
107
|
+
const { id, ...rest } = row;
|
|
108
|
+
const newWf = await this.workflowService.createEntity(
|
|
109
|
+
{
|
|
110
|
+
...rest,
|
|
111
|
+
organization_id,
|
|
112
|
+
level_id: organization_id,
|
|
113
|
+
entity_type: 'WRFW',
|
|
114
|
+
},
|
|
115
|
+
loggedInUser,
|
|
116
|
+
);
|
|
117
|
+
workflowIdMap[id] = newWf.id;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// === 2. StageGroup mapping (and save workflow ref from template data!)
|
|
121
|
+
const stageGroupIdMap: Record<number, number> = {};
|
|
122
|
+
// Include mapping from old stageGroupId to old workflowId to help with stage->workflow logic later:
|
|
123
|
+
const stageGroupToWorkflowMap: Record<number, number> = {};
|
|
124
|
+
for (const row of stageGroups) {
|
|
125
|
+
const { id, workflow_id, ...rest } = row;
|
|
126
|
+
const newSg = await this.stageGroupService.createEntity(
|
|
127
|
+
{
|
|
128
|
+
...rest,
|
|
129
|
+
workflow_id: workflowIdMap[workflow_id],
|
|
130
|
+
organization_id,
|
|
131
|
+
level_id: organization_id,
|
|
132
|
+
entity_type: 'STGP',
|
|
133
|
+
},
|
|
134
|
+
loggedInUser,
|
|
135
|
+
);
|
|
136
|
+
stageGroupIdMap[id] = newSg.id;
|
|
137
|
+
stageGroupToWorkflowMap[id] = workflow_id;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// === 3. Stage mapping — point to stageGroup and workflow
|
|
141
|
+
const stageIdMap: Record<number, number> = {};
|
|
142
|
+
const stageToStageGroupMap: Record<number, number> = {};
|
|
143
|
+
for (const row of stages) {
|
|
144
|
+
const { id, stage_group_id, ...rest } = row;
|
|
145
|
+
// Find the original parent workflow_id using the stageGroupToWorkflowMap
|
|
146
|
+
const originalWorkflowId = stageGroupToWorkflowMap[stage_group_id];
|
|
147
|
+
const newStage = await this.stageService.createEntity(
|
|
148
|
+
{
|
|
149
|
+
...rest,
|
|
150
|
+
stage_group_id: stageGroupIdMap[stage_group_id],
|
|
151
|
+
workflow_id: workflowIdMap[originalWorkflowId], // New workflow id!
|
|
152
|
+
organization_id,
|
|
153
|
+
level_id: organization_id,
|
|
154
|
+
entity_type: 'STG',
|
|
155
|
+
},
|
|
156
|
+
loggedInUser,
|
|
157
|
+
);
|
|
158
|
+
stageIdMap[id] = newStage.id;
|
|
159
|
+
stageToStageGroupMap[id] = stage_group_id; // maintain
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// === 4. Action mapping — point to stage, stageGroup, workflow correctly
|
|
163
|
+
for (const row of actions) {
|
|
164
|
+
const { id, stage_id, created_date, modified_date, ...rest } = row;
|
|
165
|
+
|
|
166
|
+
const newStageId = stageIdMap[stage_id];
|
|
167
|
+
const oldStageGroupId = stageToStageGroupMap[stage_id];
|
|
168
|
+
const oldWorkflowId = stageGroupToWorkflowMap[oldStageGroupId];
|
|
169
|
+
const newWorkflowId = workflowIdMap[oldWorkflowId];
|
|
170
|
+
|
|
171
|
+
await this.actionService.createEntity(
|
|
172
|
+
{
|
|
173
|
+
...rest,
|
|
174
|
+
stage_id: newStageId,
|
|
175
|
+
workflow_id: newWorkflowId,
|
|
176
|
+
organization_id,
|
|
177
|
+
level_id: organization_id,
|
|
178
|
+
entity_type: 'ACTN',
|
|
179
|
+
},
|
|
180
|
+
loggedInUser,
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
return {
|
|
185
|
+
message: 'Workflow data populated successfully',
|
|
186
|
+
status: 'success',
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -1,5 +1,70 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
1
|
+
import { Inject, Injectable } from '@nestjs/common';
|
|
2
2
|
import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
|
|
3
|
+
import { StageGroupRepository } from '../repository/stage-group.repository';
|
|
4
|
+
import { BaseEntity } from 'src/module/meta/entity/base-entity.entity';
|
|
5
|
+
import { UserData } from 'src/module/user/entity/user.entity';
|
|
6
|
+
import { StageService } from './stage.service';
|
|
7
|
+
import { DataSource } from 'typeorm';
|
|
3
8
|
|
|
4
9
|
@Injectable()
|
|
5
|
-
export class StageGroupService extends EntityServiceImpl {
|
|
10
|
+
export class StageGroupService extends EntityServiceImpl {
|
|
11
|
+
constructor(
|
|
12
|
+
private readonly stageGroupRepository: StageGroupRepository,
|
|
13
|
+
@Inject('StageService')
|
|
14
|
+
private readonly stageService: StageService,
|
|
15
|
+
private readonly dataSource: DataSource,
|
|
16
|
+
) {
|
|
17
|
+
super();
|
|
18
|
+
}
|
|
19
|
+
async getAllStageGroup(
|
|
20
|
+
workflow_id: number,
|
|
21
|
+
level_id: string,
|
|
22
|
+
level_type: string,
|
|
23
|
+
) {
|
|
24
|
+
return await this.stageGroupRepository.getAllStageGroup(
|
|
25
|
+
workflow_id,
|
|
26
|
+
level_id,
|
|
27
|
+
level_type,
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async updateEntity(
|
|
32
|
+
entityData: BaseEntity,
|
|
33
|
+
loggedInUser: UserData,
|
|
34
|
+
): Promise<any> {
|
|
35
|
+
return await super.updateEntity(entityData, loggedInUser);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async getEntityData(
|
|
39
|
+
entityType: string,
|
|
40
|
+
id: number,
|
|
41
|
+
loggedInUser?: UserData,
|
|
42
|
+
): Promise<BaseEntity | null> {
|
|
43
|
+
return await super.getEntityData(entityType, id, loggedInUser);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async deleteEntity(
|
|
47
|
+
entityType: string,
|
|
48
|
+
id: number,
|
|
49
|
+
loggedInUser: UserData,
|
|
50
|
+
): Promise<any> {
|
|
51
|
+
const getAllStage = await this.dataSource.query(
|
|
52
|
+
`SELECT id FROM cr_wf_stage WHERE stage_group_id = ? AND level_id =? AND level_type = ?`,
|
|
53
|
+
[id, loggedInUser.level_id, loggedInUser.level_type],
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
if (getAllStage.length > 0) {
|
|
57
|
+
for (const stage of getAllStage) {
|
|
58
|
+
await this.stageService.deleteEntity('STG', stage.id, loggedInUser);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const deleteStageGroup = await super.deleteEntity(
|
|
63
|
+
entityType,
|
|
64
|
+
id,
|
|
65
|
+
loggedInUser,
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
return deleteStageGroup;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -1,47 +1,123 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ActionService } from './action.service';
|
|
2
|
+
import {
|
|
3
|
+
BadRequestException,
|
|
4
|
+
Inject,
|
|
5
|
+
Injectable,
|
|
6
|
+
NotFoundException,
|
|
7
|
+
} from '@nestjs/common';
|
|
3
8
|
import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
|
|
9
|
+
import { BaseEntity } from 'src/module/meta/entity/base-entity.entity';
|
|
4
10
|
import { UserData } from 'src/module/user/entity/user.entity';
|
|
5
|
-
import {
|
|
11
|
+
import { StageRepository } from '../repository/stage.repository';
|
|
12
|
+
import { DataSource } from 'typeorm';
|
|
13
|
+
import { StageGroupRepository } from '../repository/stage-group.repository';
|
|
6
14
|
|
|
7
15
|
@Injectable()
|
|
8
16
|
export class StageService extends EntityServiceImpl {
|
|
9
|
-
constructor(
|
|
17
|
+
constructor(
|
|
18
|
+
private readonly stageRepository: StageRepository,
|
|
19
|
+
private readonly stageGroupRepository: StageGroupRepository,
|
|
20
|
+
private readonly dataSource: DataSource,
|
|
21
|
+
@Inject('ActionService')
|
|
22
|
+
private readonly actionService: ActionService,
|
|
23
|
+
) {
|
|
10
24
|
super();
|
|
11
25
|
}
|
|
26
|
+
async getAllStage(
|
|
27
|
+
stage_group_id: number,
|
|
28
|
+
level_id: string,
|
|
29
|
+
level_type: string,
|
|
30
|
+
) {
|
|
31
|
+
return await this.stageRepository.getAllStage(
|
|
32
|
+
stage_group_id,
|
|
33
|
+
level_id,
|
|
34
|
+
level_type,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
12
37
|
|
|
13
|
-
async
|
|
38
|
+
async updateEntity(
|
|
14
39
|
entityData: BaseEntity,
|
|
15
|
-
loggedInUser: UserData
|
|
16
|
-
|
|
17
|
-
|
|
40
|
+
loggedInUser: UserData,
|
|
41
|
+
): Promise<any> {
|
|
42
|
+
return await super.updateEntity(entityData, loggedInUser);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async getEntityData(
|
|
46
|
+
entityType: string,
|
|
47
|
+
id: number,
|
|
48
|
+
loggedInUser?: UserData,
|
|
49
|
+
): Promise<BaseEntity | null> {
|
|
50
|
+
return await super.getEntityData(entityType, id, loggedInUser);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async deleteEntity(
|
|
54
|
+
entityType: string,
|
|
55
|
+
id: number,
|
|
56
|
+
loggedInUser: UserData,
|
|
18
57
|
): Promise<any> {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
58
|
+
const getAllStageAction = await this.dataSource.query(
|
|
59
|
+
`SELECT action_id FROM cr_wf_stage_action_mapping WHERE stage_id = ? AND entity_type = 'STGM'`,
|
|
60
|
+
[id],
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
if (getAllStageAction.length > 0) {
|
|
64
|
+
for (const action of getAllStageAction) {
|
|
65
|
+
await this.actionService.deleteEntity(
|
|
66
|
+
'ACTN',
|
|
67
|
+
action.action_id,
|
|
68
|
+
loggedInUser,
|
|
69
|
+
);
|
|
31
70
|
}
|
|
32
71
|
}
|
|
33
72
|
|
|
34
|
-
|
|
35
|
-
|
|
73
|
+
const deleteStage = await super.deleteEntity(entityType, id, loggedInUser);
|
|
74
|
+
|
|
75
|
+
return deleteStage;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async getStagesWithGroupName(
|
|
79
|
+
workflow_id: number,
|
|
80
|
+
level_id: string,
|
|
81
|
+
level_type: string,
|
|
82
|
+
) {
|
|
83
|
+
if (!workflow_id) {
|
|
84
|
+
throw new BadRequestException('workflow_id is required');
|
|
36
85
|
}
|
|
37
86
|
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
appcode,
|
|
87
|
+
const stageGroups = await this.stageGroupRepository.getAllStageGroup(
|
|
88
|
+
workflow_id,
|
|
89
|
+
level_id,
|
|
90
|
+
level_type,
|
|
43
91
|
);
|
|
44
92
|
|
|
45
|
-
|
|
93
|
+
const stageGroupIds = stageGroups.map((group) => group.id);
|
|
94
|
+
const groupNameMap = new Map<number, string>(
|
|
95
|
+
stageGroups.map((group) => [Number(group.id), group.name]),
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
// Get all stages for all stageGroups
|
|
99
|
+
const allStages: any = [];
|
|
100
|
+
for (const groupId of stageGroupIds) {
|
|
101
|
+
try {
|
|
102
|
+
const stages = await this.stageRepository.getAllStage(
|
|
103
|
+
groupId,
|
|
104
|
+
level_id,
|
|
105
|
+
level_type,
|
|
106
|
+
);
|
|
107
|
+
allStages.push(...stages);
|
|
108
|
+
} catch (err) {
|
|
109
|
+
if (err instanceof NotFoundException) {
|
|
110
|
+
console.warn(`No stages for group ID ${groupId}`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
throw err;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const result = allStages.map((stage) => ({
|
|
118
|
+
stage_id: stage.id,
|
|
119
|
+
full_name: `${groupNameMap.get(stage.stage_group_id)} - ${stage.name}`,
|
|
120
|
+
}));
|
|
121
|
+
return result;
|
|
46
122
|
}
|
|
47
123
|
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
|
|
3
|
+
import { UserData } from 'src/module/user/entity/user.entity';
|
|
4
|
+
import { TaskRepository } from '../repository/task.repository';
|
|
5
|
+
import { ActionDataService } from './action-data.service';
|
|
6
|
+
|
|
7
|
+
@Injectable()
|
|
8
|
+
export class TaskService extends EntityServiceImpl {
|
|
9
|
+
constructor(
|
|
10
|
+
private readonly taskRepository: TaskRepository,
|
|
11
|
+
private readonly actionDataService: ActionDataService,
|
|
12
|
+
) {
|
|
13
|
+
super();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
async getAllTaskByUserIdandStageId(
|
|
17
|
+
loggedInUser: UserData,
|
|
18
|
+
data,
|
|
19
|
+
): Promise<any> {
|
|
20
|
+
const taskData = await this.taskRepository.getAllTaskByUserIdAndStageId({
|
|
21
|
+
user_id: data.user_id,
|
|
22
|
+
stage_id: data.stage_id,
|
|
23
|
+
mapped_entity_type: data.mapped_entity_type,
|
|
24
|
+
mapped_entity_id: data.mapped_entity_id,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const grouped: { mandatory: any[]; non_mandatory: any[] } = {
|
|
28
|
+
mandatory: [],
|
|
29
|
+
non_mandatory: [],
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
for (const task of taskData) {
|
|
33
|
+
if (task && task.is_mandatory) {
|
|
34
|
+
grouped.mandatory.push(task);
|
|
35
|
+
} else {
|
|
36
|
+
grouped.non_mandatory.push(task);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return grouped;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async getEntityData(entityType: string, id: number, loggedInUser: any) {
|
|
44
|
+
const taskData = await super.getEntityData(entityType, id, loggedInUser);
|
|
45
|
+
|
|
46
|
+
return taskData;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async saveActionData(
|
|
50
|
+
action: any,
|
|
51
|
+
loggedInUser: UserData,
|
|
52
|
+
mapped_entity_id: number,
|
|
53
|
+
mapped_entity_type: string,
|
|
54
|
+
): Promise<any> {
|
|
55
|
+
await this.taskRepository.saveActionDataInTask(
|
|
56
|
+
action,
|
|
57
|
+
loggedInUser,
|
|
58
|
+
mapped_entity_id,
|
|
59
|
+
mapped_entity_type,
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async moveTask(
|
|
64
|
+
loggedInUser: UserData,
|
|
65
|
+
body: {
|
|
66
|
+
mapped_entity_type: string;
|
|
67
|
+
mapped_entity_id: number;
|
|
68
|
+
stage_id: number;
|
|
69
|
+
action_id: number;
|
|
70
|
+
},
|
|
71
|
+
): Promise<any> {
|
|
72
|
+
// Logic to move task based on the provided body parameters
|
|
73
|
+
// This could involve updating the task's stage, action, etc.
|
|
74
|
+
|
|
75
|
+
// update task status
|
|
76
|
+
this.taskRepository.updateTaskStatus(
|
|
77
|
+
loggedInUser,
|
|
78
|
+
body.mapped_entity_type,
|
|
79
|
+
body.mapped_entity_id,
|
|
80
|
+
body.stage_id,
|
|
81
|
+
body.action_id,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
// update action status
|
|
85
|
+
await this.actionDataService.updateActionStatus(
|
|
86
|
+
loggedInUser,
|
|
87
|
+
body.mapped_entity_type,
|
|
88
|
+
body.mapped_entity_id,
|
|
89
|
+
body.stage_id,
|
|
90
|
+
body.action_id,
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
return 'Task moved successfully';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -12,13 +12,13 @@ export class WorkflowListMasterService extends EntityServiceImpl {
|
|
|
12
12
|
const results = await this.dataSource.query(
|
|
13
13
|
`
|
|
14
14
|
SELECT
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
ac.name AS name,
|
|
16
|
+
ac.logo AS logo,
|
|
17
17
|
ac.modalName AS modalName,
|
|
18
18
|
a.action_requirement AS actionRequirement
|
|
19
19
|
FROM cr_wf_stage_action_mapping sam
|
|
20
20
|
JOIN cr_wf_action a ON sam.action_id = a.id
|
|
21
|
-
JOIN cr_wf_action_category ac ON a.
|
|
21
|
+
JOIN cr_wf_action_category ac ON a.action_category = ac.id
|
|
22
22
|
WHERE sam.stage_id = ?
|
|
23
23
|
`,
|
|
24
24
|
[stageId],
|
|
@@ -26,8 +26,8 @@ export class WorkflowListMasterService extends EntityServiceImpl {
|
|
|
26
26
|
|
|
27
27
|
// Add actionStatus and return formatted output
|
|
28
28
|
return results.map((item: any) => ({
|
|
29
|
-
logo: item.logo,
|
|
30
29
|
name: item.name,
|
|
30
|
+
logo: item.logo,
|
|
31
31
|
modalName: item.modalName,
|
|
32
32
|
actionRequirement: item.actionRequirement,
|
|
33
33
|
actionStatus: 'Done',
|