rez_core 0.0.7 → 1.0.2-o

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.
Files changed (286) hide show
  1. package/.idea/250218_nodejs_core.iml +12 -0
  2. package/.idea/codeStyles/Project.xml +59 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/dataSources.xml +12 -0
  5. package/.idea/modules.xml +8 -0
  6. package/.idea/prettier.xml +6 -0
  7. package/.idea/vcs.xml +6 -0
  8. package/data/master.xlsx +0 -0
  9. package/dist/app.module.d.ts +0 -2
  10. package/dist/app.module.js +0 -31
  11. package/dist/app.module.js.map +1 -1
  12. package/dist/config/config.module.js +1 -1
  13. package/dist/config/config.module.js.map +1 -1
  14. package/dist/config/database.config.d.ts +3 -0
  15. package/dist/config/database.config.js +14 -6
  16. package/dist/config/database.config.js.map +1 -1
  17. package/dist/constant/global.constant.d.ts +6 -2
  18. package/dist/constant/global.constant.js +7 -3
  19. package/dist/constant/global.constant.js.map +1 -1
  20. package/dist/core.module.js +6 -0
  21. package/dist/core.module.js.map +1 -1
  22. package/dist/decorators/roles.decorator.js.map +1 -1
  23. package/dist/main.js +2 -1
  24. package/dist/main.js.map +1 -1
  25. package/dist/module/auth/auth.module.js +1 -1
  26. package/dist/module/auth/auth.module.js.map +1 -1
  27. package/dist/module/auth/guards/role.guard.js +3 -3
  28. package/dist/module/auth/strategies/google.strategy.d.ts +3 -1
  29. package/dist/module/auth/strategies/google.strategy.js +7 -5
  30. package/dist/module/auth/strategies/google.strategy.js.map +1 -1
  31. package/dist/module/auth/strategies/jwt.strategy.d.ts +4 -4
  32. package/dist/module/auth/strategies/jwt.strategy.js +8 -9
  33. package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
  34. package/dist/module/enterprise/enterprise.module.js +1 -1
  35. package/dist/module/enterprise/enterprise.module.js.map +1 -1
  36. package/dist/module/enterprise/service/organization.service.d.ts +9 -7
  37. package/dist/module/enterprise/service/organization.service.js +35 -14
  38. package/dist/module/enterprise/service/organization.service.js.map +1 -1
  39. package/dist/module/layout/controller/layout.controller.d.ts +11 -0
  40. package/dist/module/layout/controller/layout.controller.js +61 -0
  41. package/dist/module/layout/controller/layout.controller.js.map +1 -0
  42. package/dist/module/layout/dto/header.dto.d.ts +0 -0
  43. package/dist/module/layout/dto/header.dto.js +1 -0
  44. package/dist/module/layout/dto/header.dto.js.map +1 -0
  45. package/dist/module/layout/entity/header-items.entity.d.ts +10 -0
  46. package/dist/module/layout/entity/header-items.entity.js +52 -0
  47. package/dist/module/layout/entity/header-items.entity.js.map +1 -0
  48. package/dist/module/layout/entity/header-section.entity.d.ts +7 -0
  49. package/dist/module/layout/entity/header-section.entity.js +40 -0
  50. package/dist/module/layout/entity/header-section.entity.js.map +1 -0
  51. package/dist/module/layout/layout.module.d.ts +2 -0
  52. package/dist/module/layout/layout.module.js +30 -0
  53. package/dist/module/layout/layout.module.js.map +1 -0
  54. package/dist/module/layout/repository/header-items.repository.d.ts +7 -0
  55. package/dist/module/layout/repository/header-items.repository.js +36 -0
  56. package/dist/module/layout/repository/header-items.repository.js.map +1 -0
  57. package/dist/module/layout/repository/header-section.repository.d.ts +7 -0
  58. package/dist/module/layout/repository/header-section.repository.js +36 -0
  59. package/dist/module/layout/repository/header-section.repository.js.map +1 -0
  60. package/dist/module/layout/service/header-section.service.d.ts +8 -0
  61. package/dist/module/layout/service/header-section.service.js +37 -0
  62. package/dist/module/layout/service/header-section.service.js.map +1 -0
  63. package/dist/module/meta/controller/entity.controller.d.ts +1 -0
  64. package/dist/module/meta/controller/entity.controller.js +37 -1
  65. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  66. package/dist/module/meta/entity/base-entity.entity.d.ts +1 -2
  67. package/dist/module/meta/entity/base-entity.entity.js +1 -2
  68. package/dist/module/meta/entity/base-entity.entity.js.map +1 -1
  69. package/dist/module/meta/entity/entity-master.entity.d.ts +1 -0
  70. package/dist/module/meta/entity/entity-master.entity.js +4 -0
  71. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  72. package/dist/module/meta/entity/entity-table-column.entity.js.map +1 -1
  73. package/dist/module/meta/entity/entity-table.entity.d.ts +1 -0
  74. package/dist/module/meta/entity/entity-table.entity.js +4 -0
  75. package/dist/module/meta/entity/entity-table.entity.js.map +1 -1
  76. package/dist/module/meta/entity/media-data.entity.d.ts +11 -0
  77. package/dist/module/meta/entity/media-data.entity.js +55 -0
  78. package/dist/module/meta/entity/media-data.entity.js.map +1 -0
  79. package/dist/module/meta/entity.module.js +15 -1
  80. package/dist/module/meta/entity.module.js.map +1 -1
  81. package/dist/module/meta/repository/entity-table-column.repository.js +2 -2
  82. package/dist/module/meta/repository/entity-table.repository.d.ts +1 -0
  83. package/dist/module/meta/repository/entity-table.repository.js +9 -0
  84. package/dist/module/meta/repository/entity-table.repository.js.map +1 -1
  85. package/dist/module/meta/repository/media-data.repository.d.ts +9 -0
  86. package/dist/module/meta/repository/media-data.repository.js +55 -0
  87. package/dist/module/meta/repository/media-data.repository.js.map +1 -0
  88. package/dist/module/meta/service/entity-list.service.d.ts +3 -1
  89. package/dist/module/meta/service/entity-list.service.js +26 -3
  90. package/dist/module/meta/service/entity-list.service.js.map +1 -1
  91. package/dist/module/meta/service/entity-service-impl.service.d.ts +13 -5
  92. package/dist/module/meta/service/entity-service-impl.service.js +92 -15
  93. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  94. package/dist/module/meta/service/entity-table-column.service.d.ts +1 -0
  95. package/dist/module/meta/service/entity-table-column.service.js +4 -0
  96. package/dist/module/meta/service/entity-table-column.service.js.map +1 -1
  97. package/dist/module/meta/service/entity-table.service.d.ts +1 -0
  98. package/dist/module/meta/service/entity-table.service.js +3 -0
  99. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  100. package/dist/module/meta/service/entity.service.d.ts +3 -1
  101. package/dist/module/meta/service/media-data.service.d.ts +9 -0
  102. package/dist/module/meta/service/media-data.service.js +36 -0
  103. package/dist/module/meta/service/media-data.service.js.map +1 -0
  104. package/dist/module/meta/service/preference.service.d.ts +1 -5
  105. package/dist/module/meta/service/preference.service.js +3 -11
  106. package/dist/module/meta/service/preference.service.js.map +1 -1
  107. package/dist/module/module/entity/menu.entity.d.ts +1 -2
  108. package/dist/module/module/entity/menu.entity.js +1 -2
  109. package/dist/module/module/entity/menu.entity.js.map +1 -1
  110. package/dist/module/module/entity/module.entity.d.ts +1 -2
  111. package/dist/module/module/entity/module.entity.js +1 -2
  112. package/dist/module/module/entity/module.entity.js.map +1 -1
  113. package/dist/module/module/module.module.js +2 -2
  114. package/dist/module/module/module.module.js.map +1 -1
  115. package/dist/module/module/repository/menu.repository.js +3 -3
  116. package/dist/module/module/repository/menu.repository.js.map +1 -1
  117. package/dist/module/module/repository/module-access.repository.js +31 -20
  118. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  119. package/dist/module/module/service/menu.service.js +2 -2
  120. package/dist/module/module/service/menu.service.js.map +1 -1
  121. package/dist/module/module/service/module-access.service.js.map +1 -1
  122. package/dist/module/notification/controller/otp.controller.d.ts +17 -0
  123. package/dist/module/notification/controller/otp.controller.js +67 -0
  124. package/dist/module/notification/controller/otp.controller.js.map +1 -0
  125. package/dist/module/notification/entity/otp.entity.d.ts +10 -0
  126. package/dist/module/notification/entity/otp.entity.js +52 -0
  127. package/dist/module/notification/entity/otp.entity.js.map +1 -0
  128. package/dist/module/notification/notification.module.d.ts +2 -0
  129. package/dist/module/notification/notification.module.js +27 -0
  130. package/dist/module/notification/notification.module.js.map +1 -0
  131. package/dist/module/notification/repository/otp.repository.d.ts +9 -0
  132. package/dist/module/notification/repository/otp.repository.js +44 -0
  133. package/dist/module/notification/repository/otp.repository.js.map +1 -0
  134. package/dist/module/notification/service/otp.service.d.ts +16 -0
  135. package/dist/module/notification/service/otp.service.js +66 -0
  136. package/dist/module/notification/service/otp.service.js.map +1 -0
  137. package/dist/module/user/controller/login.controller.d.ts +1 -3
  138. package/dist/module/user/controller/login.controller.js +0 -1
  139. package/dist/module/user/controller/login.controller.js.map +1 -1
  140. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  141. package/dist/module/user/entity/role.entity.js.map +1 -1
  142. package/dist/module/user/repository/user-role-mapping.repository.js +4 -1
  143. package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
  144. package/dist/module/user/repository/user.repository.js.map +1 -1
  145. package/dist/module/user/service/login.service.d.ts +12 -4
  146. package/dist/module/user/service/login.service.js +24 -9
  147. package/dist/module/user/service/login.service.js.map +1 -1
  148. package/dist/module/user/service/role.service.d.ts +1 -5
  149. package/dist/module/user/service/role.service.js +3 -10
  150. package/dist/module/user/service/role.service.js.map +1 -1
  151. package/dist/module/user/service/user-session.service.d.ts +1 -3
  152. package/dist/module/user/service/user-session.service.js +1 -1
  153. package/dist/module/user/service/user-session.service.js.map +1 -1
  154. package/dist/module/user/service/user.service.d.ts +7 -8
  155. package/dist/module/user/service/user.service.js +13 -17
  156. package/dist/module/user/service/user.service.js.map +1 -1
  157. package/dist/module/user/user.module.js +1 -0
  158. package/dist/module/user/user.module.js.map +1 -1
  159. package/dist/resources/dev.properties.yaml +15 -0
  160. package/dist/resources/properties.module.d.ts +2 -0
  161. package/dist/resources/properties.module.js +25 -0
  162. package/dist/resources/properties.module.js.map +1 -0
  163. package/dist/resources/properties.yaml.d.ts +2 -0
  164. package/dist/resources/properties.yaml.js +10 -0
  165. package/dist/resources/properties.yaml.js.map +1 -0
  166. package/dist/resources/uat.properties.yaml +15 -0
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/dist/utils/dto/excel-data.dto.d.ts +7 -0
  169. package/dist/utils/dto/excel-data.dto.js +16 -0
  170. package/dist/utils/dto/excel-data.dto.js.map +1 -0
  171. package/dist/utils/dto/excelsheet-data.dto.d.ts +5 -0
  172. package/dist/utils/dto/excelsheet-data.dto.js +3 -0
  173. package/dist/utils/dto/excelsheet-data.dto.js.map +1 -0
  174. package/dist/utils/service/excel-helper.service.d.ts +3 -1
  175. package/dist/utils/service/excel-helper.service.js +12 -3
  176. package/dist/utils/service/excel-helper.service.js.map +1 -1
  177. package/dist/utils/service/loggingUtil.service.js +6 -6
  178. package/dist/utils/service/loggingUtil.service.js.map +1 -1
  179. package/dist/utils/utils.module.js.map +1 -1
  180. package/nest-cli.json +6 -0
  181. package/package.json +1 -1
  182. package/src/app.module.ts +0 -0
  183. package/src/config/config.module.ts +1 -1
  184. package/src/config/database.config.ts +10 -5
  185. package/src/constant/global.constant.ts +13 -4
  186. package/src/core.module.ts +6 -0
  187. package/src/decorators/roles.decorator.ts +5 -2
  188. package/src/module/auth/auth.module.ts +3 -2
  189. package/src/module/auth/guards/google-auth.guard.ts +1 -1
  190. package/src/module/auth/guards/jwt.guard.ts +22 -22
  191. package/src/module/auth/guards/role.guard.ts +68 -68
  192. package/src/module/auth/services/auth.service.ts +29 -29
  193. package/src/module/auth/services/jwt.service.ts +11 -11
  194. package/src/module/auth/strategies/google.strategy.ts +7 -4
  195. package/src/module/auth/strategies/jwt.strategy.ts +5 -6
  196. package/src/module/auth/strategies/local.strategy.ts +13 -13
  197. package/src/module/dev/dev.module.ts +12 -12
  198. package/src/module/dev/service/dev.service.ts +7 -7
  199. package/src/module/enterprise/enterprise.module.ts +2 -3
  200. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  201. package/src/module/enterprise/entity/organization.entity.ts +80 -80
  202. package/src/module/enterprise/service/organization.service.ts +48 -13
  203. package/src/module/layout/controller/layout.controller.ts +32 -0
  204. package/src/module/layout/dto/header.dto.ts +0 -0
  205. package/src/module/layout/entity/header-items.entity.ts +28 -0
  206. package/src/module/layout/entity/header-section.entity.ts +19 -0
  207. package/src/module/layout/layout.module.ts +17 -0
  208. package/src/module/layout/repository/header-items.repository.ts +18 -0
  209. package/src/module/layout/repository/header-section.repository.ts +18 -0
  210. package/src/module/layout/service/header-section.service.ts +26 -0
  211. package/src/module/master/controller/master.controller.ts +22 -22
  212. package/src/module/meta/controller/entity.controller.ts +56 -3
  213. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  214. package/src/module/meta/entity/attribute-master.entity.ts +67 -67
  215. package/src/module/meta/entity/base-entity.entity.ts +2 -3
  216. package/src/module/meta/entity/entity-master.entity.ts +3 -0
  217. package/src/module/meta/entity/entity-table-column.entity.ts +1 -1
  218. package/src/module/meta/entity/entity-table.entity.ts +4 -2
  219. package/src/module/meta/entity/media-data.entity.ts +32 -0
  220. package/src/module/meta/entity/preference.entity.ts +65 -65
  221. package/src/module/meta/entity.module.ts +15 -1
  222. package/src/module/meta/repository/attribute-master.repository.ts +28 -28
  223. package/src/module/meta/repository/entity-table-column.repository.ts +3 -3
  224. package/src/module/meta/repository/entity-table.repository.ts +14 -0
  225. package/src/module/meta/repository/media-data.repository.ts +50 -0
  226. package/src/module/meta/repository/preference.repository.ts +20 -20
  227. package/src/module/meta/service/entity-list.service.ts +36 -7
  228. package/src/module/meta/service/entity-service-impl.service.ts +138 -20
  229. package/src/module/meta/service/entity-table-column.service.ts +14 -1
  230. package/src/module/meta/service/entity-table.service.ts +8 -1
  231. package/src/module/meta/service/entity.service.ts +13 -1
  232. package/src/module/meta/service/media-data.service.ts +44 -0
  233. package/src/module/meta/service/preference.service.ts +2 -17
  234. package/src/module/module/controller/menu.controller.ts +15 -15
  235. package/src/module/module/controller/module-access.controller.ts +1 -1
  236. package/src/module/module/entity/menu.entity.ts +10 -11
  237. package/src/module/module/entity/module-access.entity.ts +22 -22
  238. package/src/module/module/entity/module-action.entity.ts +19 -19
  239. package/src/module/module/entity/module.entity.ts +9 -10
  240. package/src/module/module/module.module.ts +2 -4
  241. package/src/module/module/repository/menu.repository.ts +7 -10
  242. package/src/module/module/repository/module-access.repository.ts +57 -42
  243. package/src/module/module/service/menu.service.ts +9 -10
  244. package/src/module/module/service/module-access.service.ts +8 -3
  245. package/src/module/notification/controller/otp.controller.ts +41 -0
  246. package/src/module/notification/entity/otp.entity.ts +28 -0
  247. package/src/module/notification/notification.module.ts +14 -0
  248. package/src/module/notification/repository/otp.repository.ts +27 -0
  249. package/src/module/notification/service/otp.service.ts +56 -0
  250. package/src/module/user/controller/login.controller.ts +2 -1
  251. package/src/module/user/controller/user.controller.ts +28 -28
  252. package/src/module/user/dto/create-user.dto.ts +43 -43
  253. package/src/module/user/dto/update-user.dto.ts +4 -4
  254. package/src/module/user/entity/role.entity.ts +1 -1
  255. package/src/module/user/entity/user-role-mapping.entity.ts +21 -21
  256. package/src/module/user/entity/user-session.entity.ts +61 -61
  257. package/src/module/user/entity/user.entity.ts +35 -35
  258. package/src/module/user/repository/role.repository.ts +16 -16
  259. package/src/module/user/repository/user-role-mapping.repository.ts +9 -3
  260. package/src/module/user/repository/user.repository.ts +2 -2
  261. package/src/module/user/repository/userSession.repository.ts +33 -33
  262. package/src/module/user/service/login.service.ts +25 -8
  263. package/src/module/user/service/role.service.ts +2 -13
  264. package/src/module/user/service/user-role-mapping.service.ts +1 -1
  265. package/src/module/user/service/user-session.service.ts +2 -2
  266. package/src/module/user/service/user.service.ts +16 -27
  267. package/src/module/user/user.module.ts +1 -1
  268. package/src/resources/dev.properties.yaml +15 -0
  269. package/src/resources/properties.module.ts +12 -0
  270. package/src/resources/properties.yaml.ts +11 -0
  271. package/src/resources/uat.properties.yaml +15 -0
  272. package/src/utils/dto/excel-data.dto.ts +14 -0
  273. package/src/utils/dto/excelsheet-data.dto.ts +5 -0
  274. package/src/utils/service/clockIDGenUtil.service.ts +1 -1
  275. package/src/utils/service/dateUtil.service.ts +1 -1
  276. package/src/utils/service/encryptUtil.service.ts +97 -97
  277. package/src/utils/service/excel-helper.service.ts +14 -1
  278. package/src/utils/service/excelUtil.service.ts +15 -15
  279. package/src/utils/service/loggingUtil.service.ts +48 -48
  280. package/src/utils/service/reflection-helper.service.ts +53 -53
  281. package/src/utils/utils.module.ts +7 -7
  282. package/.env +0 -6
  283. package/dist/constant/status.constant.d.ts +0 -4
  284. package/dist/constant/status.constant.js +0 -9
  285. package/dist/constant/status.constant.js.map +0 -1
  286. package/src/constant/status.constant.ts +0 -3
@@ -49,13 +49,13 @@ export class EntityListService {
49
49
  return entityListData;
50
50
  }
51
51
 
52
- private async getFilteredList(
52
+ public async getFilteredList(
53
53
  entityTable: EntityTable,
54
54
  filters: Record<string, any>,
55
55
  sortColumn: string | undefined,
56
56
  sortOrder: string | undefined,
57
- pageNumber: number,
58
- pageSize: number,
57
+ pageNumber: number | undefined,
58
+ pageSize: number | undefined,
59
59
  ) {
60
60
  let query = this.getQuery(entityTable.data_source, null);
61
61
  let whereClause = await this.getWhereClause(entityTable, filters);
@@ -75,22 +75,32 @@ export class EntityListService {
75
75
  entityTable: EntityTable,
76
76
  filters: Record<string, any>,
77
77
  ) {
78
- let query = this.getQuery(entityTable.data_source, entityTable.tab_column);
78
+ let query = this.getQuery(entityTable.data_source, entityTable.tab_column);
79
79
  let whereClause = await this.getWhereClause(entityTable, filters);
80
80
  if (whereClause.query) {
81
81
  query += whereClause.query;
82
82
  }
83
83
  query += ' GROUP BY ' + entityTable.tab_column;
84
- return await this.entityManager.query(query, whereClause.argumentList);
84
+ let tabs = await this.entityManager.query(query, whereClause.argumentList);
85
+ let all = 0;
86
+ for (const i in tabs) {
87
+ let tab = tabs[i] as EntityTab;
88
+ all += parseInt(String(tab.tab_value_count));
89
+ }
90
+ let entityTab = new EntityTab();
91
+ entityTab.tab_value = 'ALL';
92
+ entityTab.tab_value_count = all;
93
+ tabs.push(entityTab);
94
+ return tabs;
85
95
  }
86
96
 
87
97
  private getQuery(source: string, groupByColumn: string | null) {
88
98
  if (groupByColumn) {
89
99
  return `SELECT ${groupByColumn} as tab_value, COUNT(1) AS tab_value_count
90
- FROM ${source}`;
100
+ FROM ${source}`;
91
101
  } else {
92
102
  return `SELECT *
93
- FROM ${source}`;
103
+ FROM ${source}`;
94
104
  }
95
105
  }
96
106
 
@@ -135,4 +145,23 @@ export class EntityListService {
135
145
 
136
146
  return { query, argumentList: argsObjectList };
137
147
  }
148
+
149
+ public async getMaxSequenceNumber(
150
+ tableName: string,
151
+ parentType: string,
152
+ parentId: number,
153
+ ) {
154
+ let query = `SELECT COUNT(1) seq_no
155
+ FROM ${tableName} `;
156
+ const argsObjectList: any[] = [];
157
+ if (parentId) {
158
+ query += `parent_id = ? AND parent_type = ? `;
159
+ argsObjectList.push(parentId);
160
+ argsObjectList.push(parentType);
161
+ }
162
+
163
+ let result = await this.entityManager.query(query, argsObjectList);
164
+
165
+ return result ? result[0].seq_no : 0;
166
+ }
138
167
  }
@@ -1,5 +1,5 @@
1
1
  import { EntityService } from './entity.service';
2
- import { Injectable } from '@nestjs/common';
2
+ import { BadRequestException, Inject, Injectable } from '@nestjs/common';
3
3
  import { UserData } from '../../user/entity/user.entity';
4
4
  import { EntityMasterService } from './entity-master.service';
5
5
  import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
@@ -7,39 +7,64 @@ import { BaseEntity } from '../entity/base-entity.entity';
7
7
  import { LoggingService } from '../../../utils/service/loggingUtil.service';
8
8
  import { EntityListData } from '../dto/entity-list-data.dto';
9
9
  import { EntityListService } from './entity-list.service';
10
+ import { EntityManager } from 'typeorm';
11
+ import { ExcelData } from '../../../utils/dto/excel-data.dto';
12
+ import * as fs from 'fs';
13
+ import * as path from 'path';
14
+ import { ExcelHelper } from '../../../utils/service/excel-helper.service';
15
+ import { ExcelsheetData } from '../../../utils/dto/excelsheet-data.dto';
16
+ import { EntityTableService } from './entity-table.service';
17
+ import { EntityTableColumnService } from './entity-table-column.service';
18
+ import { ENTITYTYPE_ENTITYMASTER } from '../../../constant/global.constant';
10
19
 
11
20
  @Injectable()
12
21
  export class EntityServiceImpl implements EntityService<BaseEntity> {
13
- constructor(
14
- private entityMasterService: EntityMasterService,
15
- private reflectionHelper: ReflectionHelper,
16
- private entityListService: EntityListService,
17
- loggingService: LoggingService,
18
- ) {}
22
+ @Inject() protected readonly entityMasterService: EntityMasterService;
23
+ @Inject()
24
+ protected readonly entityTableColumnService: EntityTableColumnService;
25
+ @Inject() protected readonly entityTableService: EntityTableService;
26
+ @Inject() protected readonly reflectionHelper: ReflectionHelper;
27
+ @Inject() protected readonly entityListService: EntityListService;
28
+ @Inject() protected readonly loggingService: LoggingService;
19
29
 
20
30
  async createEntity(
21
31
  entityData: BaseEntity,
22
32
  loggedInUser: UserData | null,
33
+ manager?: EntityManager,
23
34
  ): Promise<BaseEntity> {
35
+ if (!entityData.entity_type) {
36
+ throw new BadRequestException(`EntityType is missing`);
37
+ }
24
38
  const entityMaster = await this.entityMasterService.getEntityData(
25
39
  entityData.entity_type,
26
40
  );
27
41
 
28
- const repoService = this.reflectionHelper.getRepoService(
29
- entityMaster.entityDataClass,
30
- );
31
- if (!repoService) {
42
+ const repo = manager
43
+ ? manager.getRepository(entityMaster.entityDataClass) // <-- Use transaction-safe repo
44
+ : this.reflectionHelper.getRepoService(entityMaster.entityDataClass);
45
+
46
+ if (!repo) {
32
47
  throw new Error(
33
48
  `Repository service not found for entityType: ${entityData.entity_type}`,
34
49
  );
35
50
  }
36
- entityData.entity_type = entityMaster.mappedEntityType;
51
+
52
+ if (!entityData.code) {
53
+ let maxSeqNo = await this.getMaxSequenceNumber(
54
+ entityData.entity_type,
55
+ entityData.parent_id,
56
+ entityData.parent_type,
57
+ );
58
+ maxSeqNo = Number(maxSeqNo) + 1;
59
+ entityData.code = entityData.entity_type + maxSeqNo;
60
+ }
61
+
37
62
  entityData.created_date = new Date();
38
63
  if (loggedInUser) {
39
64
  entityData.created_by = loggedInUser.id;
40
65
  }
41
66
 
42
- const savedEntity = repoService.save(entityData);
67
+ const savedEntity = repo.save(entityData);
43
68
  return savedEntity;
44
69
  }
45
70
 
@@ -73,13 +98,6 @@ export class EntityServiceImpl implements EntityService<BaseEntity> {
73
98
  id: number,
74
99
  ): Promise<BaseEntity | null> {
75
100
  const entityData = await this.entityMasterService.getEntityData(entityType);
76
- // this.loggingService.log(
77
- // 'info',
78
- // EntityServiceImpl.name,
79
- // 'GetEntity',
80
- // 'STARTED',
81
- // [{ entityData }],
82
- // );
83
101
 
84
102
  const repoService = this.reflectionHelper.getRepoService(
85
103
  entityData.entityDataClass,
@@ -151,4 +169,104 @@ export class EntityServiceImpl implements EntityService<BaseEntity> {
151
169
  pageSize,
152
170
  );
153
171
  }
172
+
173
+ async generateExcelReport(
174
+ entityType: string,
175
+ filterCriteria: Record<string, any>,
176
+ listEntityType: string,
177
+ displayType: string,
178
+ ): Promise<string | null> {
179
+ let fileName: string;
180
+ try {
181
+ const excelData = new ExcelData();
182
+ await this.populateExcelData(
183
+ excelData,
184
+ entityType,
185
+ filterCriteria,
186
+ listEntityType,
187
+ displayType,
188
+ );
189
+
190
+ const modifiedDate = new Date().toISOString().replace(/[-T:.Z]/g, '');
191
+ const tempDir = path.join(__dirname, '../../temp');
192
+ if (!fs.existsSync(tempDir)) {
193
+ fs.mkdirSync(tempDir, { recursive: true });
194
+ }
195
+ fileName = path.join(tempDir, `export_${modifiedDate}.xlsx`);
196
+ excelData.filePath = fileName;
197
+ ExcelHelper.writeExcel(excelData);
198
+ } catch (error) {
199
+ throw error;
200
+ }
201
+ return fileName;
202
+ }
203
+
204
+ private async populateExcelData(
205
+ excelData: ExcelData,
206
+ entityType: string,
207
+ filterCriteria: Record<string, any>,
208
+ listEntityType: string,
209
+ displayType: string,
210
+ ) {
211
+ const sheet: ExcelsheetData = {
212
+ sheetName: entityType,
213
+ headers: [],
214
+ rowList: [],
215
+ };
216
+
217
+ const entityTable =
218
+ await this.entityTableService.findByEntityTypeAndListTypeAndDisplayType(
219
+ entityType,
220
+ listEntityType,
221
+ displayType,
222
+ );
223
+ if (entityTable) {
224
+ const entityTableColumnList =
225
+ await this.entityTableColumnService.findByParentIdAndParentType(
226
+ entityTable.id,
227
+ entityTable.entity_type,
228
+ );
229
+
230
+ sheet.headers = entityTableColumnList.map((col) => col.name);
231
+ const attributeList = entityTableColumnList.map(
232
+ (col) => col.attribute_key,
233
+ );
234
+
235
+ const filteredList = await this.entityListService.getFilteredList(
236
+ entityTable,
237
+ filterCriteria,
238
+ undefined,
239
+ undefined,
240
+ undefined,
241
+ undefined,
242
+ );
243
+
244
+ sheet.rowList = filteredList.map((item) =>
245
+ attributeList.map((attr) =>
246
+ item[attr] !== undefined ? item[attr] : null,
247
+ ),
248
+ );
249
+ excelData.addSheet(sheet);
250
+ }
251
+ }
252
+
253
+ private async getMaxSequenceNumber(
254
+ entityType: string,
255
+ parentId: number,
256
+ parentType: string,
257
+ ): Promise<number> {
258
+ let tableName: string;
259
+ if (ENTITYTYPE_ENTITYMASTER === entityType) {
260
+ tableName = 'cr_entity_master';
261
+ } else {
262
+ let entityMaster =
263
+ await this.entityMasterService.getEntityData(entityType);
264
+ tableName = entityMaster.dbTableName;
265
+ }
266
+ return await this.entityListService.getMaxSequenceNumber(
267
+ tableName,
268
+ parentType,
269
+ parentId,
270
+ );
271
+ }
154
272
  }
@@ -8,11 +8,24 @@ export class EntityTableColumnService {
8
8
  ) {}
9
9
 
10
10
  async getAttributeJson(parentId: number, parentType: string) {
11
- let entityTableColumns = await this.entityTableColumnRepository.findByParentIdAndParentType(parentId, parentType);
11
+ let entityTableColumns =
12
+ await this.entityTableColumnRepository.findByParentIdAndParentType(
13
+ parentId,
14
+ parentType,
15
+ );
12
16
  let attributeJson = {};
13
17
  entityTableColumns.forEach((value) => {
14
18
  attributeJson[value.attribute_key] = value.data_type;
15
19
  });
16
20
  return attributeJson;
17
21
  }
22
+
23
+ async findByParentIdAndParentType(parentId: number, parentType: string) {
24
+ let entityTableColumns =
25
+ await this.entityTableColumnRepository.findByParentIdAndParentType(
26
+ parentId,
27
+ parentType,
28
+ );
29
+ return entityTableColumns;
30
+ }
18
31
  }
@@ -6,6 +6,13 @@ export class EntityTableService {
6
6
  constructor(private entityTableRepository: EntityTableRepository) {}
7
7
 
8
8
  async findByEntityTypeAndListType(entityType: string, listType: string) {
9
- return await this.entityTableRepository.findByEntityTypeAndListType(entityType, listType);
9
+ return await this.entityTableRepository.findByEntityTypeAndListType(
10
+ entityType,
11
+ listType,
12
+ );
13
+ }
14
+
15
+ async findByEntityTypeAndListTypeAndDisplayType(entityType: string, listType: string, displayType: string) {
16
+ return await this.entityTableRepository.findByEntityTypeAndListTypeAndDisplayType(entityType, listType, displayType);
10
17
  }
11
18
  }
@@ -1,9 +1,14 @@
1
1
  import { UserData } from '../../user/entity/user.entity';
2
2
  import { BaseEntity } from '../entity/base-entity.entity';
3
3
  import { EntityListData } from '../dto/entity-list-data.dto';
4
+ import { EntityManager } from 'typeorm';
4
5
 
5
6
  export interface EntityService<T extends BaseEntity> {
6
- createEntity(entityData: T, loggedInUser: UserData): Promise<BaseEntity>;
7
+ createEntity(
8
+ entityData: T,
9
+ loggedInUser: UserData,
10
+ manager?: EntityManager,
11
+ ): Promise<BaseEntity>;
7
12
 
8
13
  getEntityData(
9
14
  entityType: string,
@@ -31,4 +36,11 @@ export interface EntityService<T extends BaseEntity> {
31
36
  pageNumber: number,
32
37
  pageSize: number,
33
38
  ): Promise<EntityListData>;
39
+
40
+ generateExcelReport(
41
+ entityType: string,
42
+ filterCriteria: Record<string, any>,
43
+ listEntityType: string,
44
+ displayType: string,
45
+ ): Promise<string | null>;
34
46
  }
@@ -0,0 +1,44 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { EntityServiceImpl } from './entity-service-impl.service';
3
+ import { MediaDataRepository } from '../repository/media-data.repository';
4
+
5
+ @Injectable()
6
+ export class MediaDataService extends EntityServiceImpl {
7
+ constructor(private readonly mediaRepository: MediaDataRepository) {
8
+ super();
9
+ }
10
+
11
+ async findByAttributeKeyAndMappedEntityIdAndMappedEntityType(
12
+ attributeKey: string,
13
+ mappedEntityId: number,
14
+ mappedEntityType: string,
15
+ ) {
16
+ return await this.mediaRepository.findByAttributeKeyAndMappedEntityIdAndMappedEntityType(
17
+ attributeKey,
18
+ mappedEntityId,
19
+ mappedEntityType,
20
+ );
21
+ }
22
+
23
+ async findByMappedEntityIdAndMappedEntityType(
24
+ mappedEntityId: number,
25
+ mappedEntityType: string,
26
+ ) {
27
+ return await this.mediaRepository.findByMappedEntityIdAndMappedEntityType(
28
+ mappedEntityId,
29
+ mappedEntityType,
30
+ );
31
+ }
32
+
33
+ async deleteByAttributeKeyAndMappedEntityIdAndMappedEntityType(
34
+ attributeKey: string,
35
+ mappedEntityId: number,
36
+ mappedEntityType: string,
37
+ ) {
38
+ return await this.mediaRepository.deleteByAttributeKeyAndMappedEntityIdAndMappedEntityType(
39
+ attributeKey,
40
+ mappedEntityId,
41
+ mappedEntityType,
42
+ );
43
+ }
44
+ }
@@ -1,26 +1,11 @@
1
1
  import { EntityServiceImpl } from './entity-service-impl.service';
2
2
  import { Injectable } from '@nestjs/common';
3
3
  import { PreferenceRepository } from '../repository/preference.repository';
4
- import { EntityMasterService } from './entity-master.service';
5
- import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
6
- import { LoggingService } from '../../../utils/service/loggingUtil.service';
7
- import { EntityListService } from './entity-list.service';
8
4
 
9
5
  @Injectable()
10
6
  export class PreferenceService extends EntityServiceImpl {
11
- constructor(
12
- entityMasterService: EntityMasterService,
13
- reflectionHelper: ReflectionHelper,
14
- loggingService: LoggingService,
15
- entityListService: EntityListService,
16
- private readonly preferenceRepository: PreferenceRepository,
17
- ) {
18
- super(
19
- entityMasterService,
20
- reflectionHelper,
21
- entityListService,
22
- loggingService,
23
- );
7
+ constructor(private readonly preferenceRepository: PreferenceRepository) {
8
+ super();
24
9
  }
25
10
 
26
11
  async getPreferenceValue(preferenceKey: string): Promise<string | undefined> {
@@ -1,15 +1,15 @@
1
- import { Controller, Get, Request, UseGuards } from '@nestjs/common';
2
- import { MenuService } from '../service/menu.service';
3
- import { JwtAuthGuard } from 'src/module/auth/guards/jwt.guard';
4
-
5
- @Controller('menu')
6
- export class MenuController {
7
- constructor(private readonly menuService: MenuService) {}
8
-
9
- @UseGuards(JwtAuthGuard)
10
- @Get()
11
- async getMenu(@Request() req) {
12
- const userId = req.user.userId;
13
- return this.menuService.getUserMenu(userId);
14
- }
15
- }
1
+ import { Controller, Get, Request, UseGuards } from '@nestjs/common';
2
+ import { MenuService } from '../service/menu.service';
3
+ import { JwtAuthGuard } from 'src/module/auth/guards/jwt.guard';
4
+
5
+ @Controller('menu')
6
+ export class MenuController {
7
+ constructor(private readonly menuService: MenuService) {}
8
+
9
+ @UseGuards(JwtAuthGuard)
10
+ @Get()
11
+ async getMenu(@Request() req) {
12
+ const userId = req.user.userId;
13
+ return this.menuService.getUserMenu(userId);
14
+ }
15
+ }
@@ -1,4 +1,4 @@
1
- import { Controller, Get, Post, Body, Query } from '@nestjs/common';
1
+ import { Body, Controller, Get, Post, Query } from '@nestjs/common';
2
2
  import { ModuleAccessService } from '../service/module-access.service';
3
3
 
4
4
  @Controller('module-access')
@@ -1,5 +1,4 @@
1
1
  import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
2
- import { StatusType } from '../../../constant/status.constant';
3
2
 
4
3
  @Entity({ name: 'cr_menu' })
5
4
  export class MenuData {
@@ -9,30 +8,30 @@ export class MenuData {
9
8
  @Column({ type: 'varchar', length: 100, nullable: true })
10
9
  name: string;
11
10
 
12
- @Column({type: 'varchar', length: 100, nullable: true })
11
+ @Column({ type: 'varchar', length: 100, nullable: true })
13
12
  module_code: string;
14
13
 
15
- @Column({type: 'varchar', length: 100, nullable: true })
16
- status: StatusType;
14
+ @Column({ type: 'varchar', length: 100, nullable: true })
15
+ status: string;
17
16
 
18
- @Column({type: 'varchar', length: 100, nullable: true })
17
+ @Column({ type: 'varchar', length: 100, nullable: true })
19
18
  wbs_code: string;
20
19
 
21
- @Column({type: 'varchar', nullable: true })
20
+ @Column({ type: 'varchar', nullable: true })
22
21
  path: string;
23
22
 
24
- @Column({type: 'varchar', length: 100, nullable: true })
23
+ @Column({ type: 'varchar', length: 100, nullable: true })
25
24
  icon: string;
26
25
 
27
- @Column({type: 'varchar', length: 100, nullable: true })
26
+ @Column({ type: 'varchar', length: 100, nullable: true })
28
27
  module_level: string;
29
28
 
30
- @Column({type: 'int', nullable: true})
29
+ @Column({ type: 'int', nullable: true })
31
30
  parent_id: number;
32
31
 
33
- @Column({type: 'varchar', length: 100, nullable: true })
32
+ @Column({ type: 'varchar', length: 100, nullable: true })
34
33
  parent_code: string;
35
34
 
36
- @Column({type: 'int', nullable: true})
35
+ @Column({ type: 'int', nullable: true })
37
36
  ui_visible: number;
38
37
  }
@@ -1,22 +1,22 @@
1
- import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
2
-
3
- @Entity({ name: 'cr_module_access' })
4
- export class ModuleAccess {
5
- @PrimaryGeneratedColumn()
6
- id: number;
7
-
8
- @Column({type: 'varchar', length: 100, nullable: true})
9
- module_code: string;
10
-
11
- @Column({type: 'varchar', length: 100, nullable: true })
12
- role_code: string;
13
-
14
- @Column({type: 'int', nullable: true })
15
- access_flag: number;
16
-
17
- @Column({type: 'varchar', length: 100, nullable: true })
18
- action_type: string;
19
-
20
- @Column({type: 'varchar', length: 100, nullable: true})
21
- app_code: string;
22
- }
1
+ import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
2
+
3
+ @Entity({ name: 'cr_module_access' })
4
+ export class ModuleAccess {
5
+ @PrimaryGeneratedColumn()
6
+ id: number;
7
+
8
+ @Column({type: 'varchar', length: 100, nullable: true})
9
+ module_code: string;
10
+
11
+ @Column({type: 'varchar', length: 100, nullable: true })
12
+ role_code: string;
13
+
14
+ @Column({type: 'int', nullable: true })
15
+ access_flag: number;
16
+
17
+ @Column({type: 'varchar', length: 100, nullable: true })
18
+ action_type: string;
19
+
20
+ @Column({type: 'varchar', length: 100, nullable: true})
21
+ app_code: string;
22
+ }
@@ -1,19 +1,19 @@
1
- import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
2
-
3
- @Entity({ name: 'module_action' })
4
- export class ModuleAction {
5
- @PrimaryGeneratedColumn()
6
- id: number;
7
-
8
- @Column({type: 'int', nullable: true})
9
- module_id: number;
10
-
11
- @Column({type: 'varchar', length: 100, nullable: true })
12
- module_code: string;
13
-
14
- @Column({type: 'varchar', length: 100, nullable: true })
15
- action_name:string
16
-
17
- @Column({type: 'varchar', length: 50, nullable: true })
18
- action_type: string;
19
- }
1
+ import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
2
+
3
+ @Entity({ name: 'module_action' })
4
+ export class ModuleAction {
5
+ @PrimaryGeneratedColumn()
6
+ id: number;
7
+
8
+ @Column({type: 'int', nullable: true})
9
+ module_id: number;
10
+
11
+ @Column({type: 'varchar', length: 100, nullable: true })
12
+ module_code: string;
13
+
14
+ @Column({type: 'varchar', length: 100, nullable: true })
15
+ action_name:string
16
+
17
+ @Column({type: 'varchar', length: 50, nullable: true })
18
+ action_type: string;
19
+ }
@@ -1,32 +1,31 @@
1
1
  import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';
2
- import { StatusType } from '../../../constant/status.constant';
3
2
 
4
3
  @Entity({ name: 'cr_module' })
5
4
  export class ModuleData {
6
5
  @PrimaryGeneratedColumn({ type: 'int' })
7
6
  id: number;
8
7
 
9
- @Column({type: 'varchar', length: 100, nullable: true })
8
+ @Column({ type: 'varchar', length: 100, nullable: true })
10
9
  name: string;
11
10
 
12
- @Column({type: 'varchar', length: 100, nullable: true })
11
+ @Column({ type: 'varchar', length: 100, nullable: true })
13
12
  module_code: string;
14
13
 
15
- @Column({type: 'varchar', length: 100, nullable: true })
14
+ @Column({ type: 'varchar', length: 100, nullable: true })
16
15
  wbs_code: string;
17
16
 
18
- @Column({type: 'varchar', length: 100, nullable: true })
19
- status: StatusType;
17
+ @Column({ type: 'varchar', length: 100, nullable: true })
18
+ status: string;
20
19
 
21
- @Column({type: 'varchar', length: 100, nullable: true })
20
+ @Column({ type: 'varchar', length: 100, nullable: true })
22
21
  module_level: string;
23
22
 
24
- @Column({type: 'int', nullable: true })
23
+ @Column({ type: 'int', nullable: true })
25
24
  parent_id: number;
26
25
 
27
- @Column({type: 'varchar', length: 100, nullable: true })
26
+ @Column({ type: 'varchar', length: 100, nullable: true })
28
27
  parent_code: string;
29
28
 
30
- @Column({type: 'int', nullable: true})
29
+ @Column({ type: 'int', nullable: true })
31
30
  ui_visible: number;
32
31
  }
@@ -13,7 +13,6 @@ import { ModuleAccessRepository } from './repository/module-access.repository';
13
13
  import { ModuleAccessController } from './controller/module-access.controller';
14
14
  import { UserRoleMapping } from '../user/entity/user-role-mapping.entity';
15
15
  import { UserModule } from '../user/user.module';
16
- import { RoleRepository } from '../user/repository/role.repository';
17
16
  import { Role } from '../user/entity/role.entity';
18
17
 
19
18
  @Module({
@@ -24,10 +23,10 @@ import { Role } from '../user/entity/role.entity';
24
23
  ModuleAction,
25
24
  MenuData,
26
25
  UserRoleMapping,
27
- Role
26
+ Role,
28
27
  ]),
29
28
  UtilsModule,
30
- UserModule
29
+ UserModule,
31
30
  ],
32
31
  controllers: [MenuController, ModuleAccessController],
33
32
  providers: [
@@ -35,7 +34,6 @@ import { Role } from '../user/entity/role.entity';
35
34
  MenuService,
36
35
  MenuRepository,
37
36
  ModuleAccessRepository,
38
-
39
37
  ],
40
38
  exports: [ModuleAccessService],
41
39
  })