@things-factory/operato-hub 4.3.328 → 4.3.330

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.
@@ -36,6 +36,7 @@ const email_base_1 = require("@things-factory/email-base");
36
36
  const env_1 = require("@things-factory/env");
37
37
  const shell_1 = require("@things-factory/shell");
38
38
  const entities_1 = require("../../../entities");
39
+ const { PerformanceObserver, performance } = require('node:perf_hooks');
39
40
  const EMAIL_SEARCH_INTERVAL = 35;
40
41
  exports.sendEmailsResolver = {
41
42
  async sendEmails(_, {}, context) {
@@ -94,111 +95,136 @@ function flattenObject(obj, delimiter = '|') {
94
95
  return objResult;
95
96
  }
96
97
  async function processEmailCronJob(email, fromDate, toDate) {
97
- let attachments = [];
98
- // black list filtration
99
- // let partnerBlackList = JSON.parse(email.partnerBlackList) || []
100
- // partner list
101
- let partnerList = JSON.parse(email.partnerList) || [];
102
- const partners = await (0, typeorm_1.getRepository)(auth_base_1.Partner).find({
103
- where: { domain: email.domain, id: (0, typeorm_1.In)(partnerList) },
104
- relations: ['partnerDomain']
105
- });
106
- // retrieve and process xlsx attachmennts
107
- for (let attachment of email.emailAttachments) {
108
- let client = shell_1.GraphqlLocalClient.client;
109
- let attachmentVariables = JSON.parse(attachment.attachmentVariables);
110
- let numberOfMonths = (attachmentVariables === null || attachmentVariables === void 0 ? void 0 : attachmentVariables.numberOfMonths) || 1;
111
- let numberOfWeeks = (attachmentVariables === null || attachmentVariables === void 0 ? void 0 : attachmentVariables.numberOfWeeks) ? attachmentVariables.numberOfWeeks * 7 : 7;
112
- let numberOfDays = (attachmentVariables === null || attachmentVariables === void 0 ? void 0 : attachmentVariables.numberOfDays) || 1;
113
- for (let partner of partners) {
114
- const bizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
115
- where: { domain: partner.partnerDomain }
116
- });
117
- // date params processing
118
- // let dateValue = new Date()
119
- // let yesterday = dateValue.getDate() - 1
120
- // let yesterdayBegin: any = new Date(dateValue.setDate(yesterday))
121
- // let yesterdayEnd: any = new Date(dateValue.setDate(yesterday))
122
- // yesterdayBegin.setHours(0, 0, 0, 0)
123
- // yesterdayEnd.setHours(23, 59, 59, 999)
124
- let timezoneOffset = (email === null || email === void 0 ? void 0 : email.timezoneOffset) || 0;
125
- let curDate = new Date();
126
- let curDateForMonth = new Date(curDate);
127
- let curDateForWeek = new Date(curDate);
128
- let curDateForDay = new Date(curDate);
129
- let prevMonth = curDateForMonth.getMonth() - numberOfMonths;
130
- let prevMonthBegin = new Date(curDateForMonth.setMonth(prevMonth));
131
- prevMonthBegin.setHours(0, 0, 0, 0);
132
- let prevMonthBeginDateTime = new Date(prevMonthBegin - timezoneOffset * 60000).toISOString();
133
- let prevWeek = curDateForWeek.getDate() - numberOfWeeks; // subtract 1 week
134
- let prevWeekBegin = new Date(curDateForWeek.setDate(prevWeek));
135
- prevWeekBegin.setHours(0, 0, 0, 0);
136
- let prevWeekBeginDateTime = new Date(prevWeekBegin - timezoneOffset * 60000).toISOString();
137
- let prevDay = curDateForDay.getDate() - numberOfDays; // subtract 1 day
138
- let prevDayBegin = new Date(curDateForDay.setDate(prevDay));
139
- prevDayBegin.setHours(0, 0, 0, 0);
140
- let prevDayBeginDateTime = new Date(prevDayBegin - timezoneOffset * 60000).toISOString();
141
- let endDate = curDate;
142
- endDate.setHours(23, 59, 59, 999);
143
- let endDateTime = new Date(endDate - timezoneOffset * 60000).toISOString();
144
- // let fromDate = new Date(yesterdayBegin - timezoneOffset * 60000).toISOString()
145
- // let toDate = new Date(yesterdayEnd - timezoneOffset * 60000).toISOString()
146
- // to trace UTC conversion in production
147
- env_1.logger.info(`[email_utc_conversion] fromDate: ${fromDate}, toDate: ${toDate}`);
148
- let variables = replaceValues(attachment.variables, [
149
- { name: '{{bizplaceId}}', value: `"${bizplace.id}"` },
150
- { name: '{{timezoneOffset}}', value: `${timezoneOffset}` },
151
- { name: '{{lastRunDateTime}}', value: `"${fromDate}"` },
152
- { name: '{{toDateTime}}', value: `"${endDateTime}"` },
153
- { name: '{{prevMonthBeginDateTime}}', value: `"${prevMonthBeginDateTime}"` },
154
- { name: '{{prevWeekBeginDateTime}}', value: `"${prevWeekBeginDateTime}"` },
155
- { name: '{{prevDayBeginDateTime}}', value: `"${prevDayBeginDateTime}"` }
156
- ]);
157
- let user = email.creator;
158
- delete user.creatorId;
159
- delete user.updaterId;
160
- // might show unused because of usage in eval
161
- const response = await client.query({
162
- query: (0, graphql_tag_1.default) `
163
- ${attachment.gqlString}
164
- `,
165
- variables: variables || {},
166
- context: { state: { domain: email.domain, user } }
167
- });
168
- let mappedResponse = eval(attachment.mappingFunction);
169
- let header = JSON.parse(attachment.headers);
170
- let excelResponse = await (0, email_base_1.objDataToExcel)({ name: 'name', data: { header, data: mappedResponse } });
171
- attachments.push({
172
- filename: `${bizplace.name} - ${attachment.name}.xlsx`,
173
- content: excelResponse,
174
- contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
175
- });
98
+ try {
99
+ performance.mark(`processEmailCronJob start:(${email.id})`);
100
+ // processEmailStartTime = performance.now()
101
+ let attachments = [];
102
+ // black list filtration
103
+ // let partnerBlackList = JSON.parse(email.partnerBlackList) || []
104
+ // partner list
105
+ let partnerList = JSON.parse(email.partnerList) || [];
106
+ const partners = await (0, typeorm_1.getRepository)(auth_base_1.Partner).find({
107
+ where: { domain: email.domain, id: (0, typeorm_1.In)(partnerList) },
108
+ relations: ['partnerDomain']
109
+ });
110
+ // retrieve and process xlsx attachmennts
111
+ for (let attachment of email.emailAttachments) {
112
+ let client = shell_1.GraphqlLocalClient.client;
113
+ let attachmentVariables = JSON.parse(attachment.attachmentVariables);
114
+ let numberOfMonths = (attachmentVariables === null || attachmentVariables === void 0 ? void 0 : attachmentVariables.numberOfMonths) || 1;
115
+ let numberOfWeeks = (attachmentVariables === null || attachmentVariables === void 0 ? void 0 : attachmentVariables.numberOfWeeks) ? attachmentVariables.numberOfWeeks * 7 : 7;
116
+ let numberOfDays = (attachmentVariables === null || attachmentVariables === void 0 ? void 0 : attachmentVariables.numberOfDays) || 1;
117
+ for (let partner of partners) {
118
+ const bizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
119
+ where: { domain: partner.partnerDomain }
120
+ });
121
+ // date params processing
122
+ // let dateValue = new Date()
123
+ // let yesterday = dateValue.getDate() - 1
124
+ // let yesterdayBegin: any = new Date(dateValue.setDate(yesterday))
125
+ // let yesterdayEnd: any = new Date(dateValue.setDate(yesterday))
126
+ // yesterdayBegin.setHours(0, 0, 0, 0)
127
+ // yesterdayEnd.setHours(23, 59, 59, 999)
128
+ let timezoneOffset = (email === null || email === void 0 ? void 0 : email.timezoneOffset) || 0;
129
+ let curDate = new Date();
130
+ let curDateForMonth = new Date(curDate);
131
+ let curDateForWeek = new Date(curDate);
132
+ let curDateForDay = new Date(curDate);
133
+ let prevMonth = curDateForMonth.getMonth() - numberOfMonths;
134
+ let prevMonthBegin = new Date(curDateForMonth.setMonth(prevMonth));
135
+ prevMonthBegin.setHours(0, 0, 0, 0);
136
+ let prevMonthBeginDateTime = new Date(prevMonthBegin - timezoneOffset * 60000).toISOString();
137
+ let prevWeek = curDateForWeek.getDate() - numberOfWeeks; // subtract 1 week
138
+ let prevWeekBegin = new Date(curDateForWeek.setDate(prevWeek));
139
+ prevWeekBegin.setHours(0, 0, 0, 0);
140
+ let prevWeekBeginDateTime = new Date(prevWeekBegin - timezoneOffset * 60000).toISOString();
141
+ let prevDay = curDateForDay.getDate() - numberOfDays; // subtract 1 day
142
+ let prevDayBegin = new Date(curDateForDay.setDate(prevDay));
143
+ prevDayBegin.setHours(0, 0, 0, 0);
144
+ let prevDayBeginDateTime = new Date(prevDayBegin - timezoneOffset * 60000).toISOString();
145
+ let endDate = curDate;
146
+ endDate.setHours(23, 59, 59, 999);
147
+ let endDateTime = new Date(endDate - timezoneOffset * 60000).toISOString();
148
+ // let fromDate = new Date(yesterdayBegin - timezoneOffset * 60000).toISOString()
149
+ // let toDate = new Date(yesterdayEnd - timezoneOffset * 60000).toISOString()
150
+ // to trace UTC conversion in production
151
+ env_1.logger.info(`[email_utc_conversion] fromDate: ${fromDate}, toDate: ${toDate}`);
152
+ let variables = replaceValues(attachment.variables, [
153
+ { name: '{{bizplaceId}}', value: `"${bizplace.id}"` },
154
+ { name: '{{timezoneOffset}}', value: `${timezoneOffset}` },
155
+ { name: '{{lastRunDateTime}}', value: `"${fromDate}"` },
156
+ { name: '{{toDateTime}}', value: `"${endDateTime}"` },
157
+ { name: '{{prevMonthBeginDateTime}}', value: `"${prevMonthBeginDateTime}"` },
158
+ { name: '{{prevWeekBeginDateTime}}', value: `"${prevWeekBeginDateTime}"` },
159
+ { name: '{{prevDayBeginDateTime}}', value: `"${prevDayBeginDateTime}"` }
160
+ ]);
161
+ let user = email.creator;
162
+ delete user.creatorId;
163
+ delete user.updaterId;
164
+ // might show unused because of usage in eval
165
+ const response = await client.query({
166
+ query: (0, graphql_tag_1.default) `
167
+ ${attachment.gqlString}
168
+ `,
169
+ variables: variables || {},
170
+ context: { state: { domain: email.domain, user } }
171
+ });
172
+ let excelResponse;
173
+ try {
174
+ performance.mark(`objDataToExcel start:${email.id}`);
175
+ let mappedResponse = eval(attachment.mappingFunction);
176
+ let header = JSON.parse(attachment.headers);
177
+ excelResponse = await (0, email_base_1.objDataToExcel)({ name: 'name', data: { header, data: mappedResponse } });
178
+ performance.mark(`objDataToExcel end:${email.id}`);
179
+ }
180
+ catch (e) {
181
+ performance.mark(`objDataToExcel end:${email.id}`);
182
+ env_1.logger.error(`[send-email] objDataToExcel(${email.id}): ${e}`);
183
+ }
184
+ finally {
185
+ let perf = performance.measure(`emailId:${email.id}`, `objDataToExcel start:${email.id}`, `objDataToExcel end:${email.id}`);
186
+ env_1.logger.info(`objDataToExcel performance: ${perf.toJSON()}`);
187
+ }
188
+ attachments.push({
189
+ filename: `${bizplace.name} - ${attachment.name}.xlsx`,
190
+ content: excelResponse,
191
+ contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
192
+ });
193
+ }
176
194
  }
195
+ // modify content and subject
196
+ let bizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
197
+ where: { domain: email.domain },
198
+ relations: ['company']
199
+ });
200
+ let modifiedContent = email.content.replace('{{companyName}}', bizplace.company.name);
201
+ let modifiedSubject = email.subject.replace('{{warehouseName}}', email.domain.name);
202
+ modifiedSubject = modifiedSubject.replace('{{reportDate}}', new Date().toLocaleDateString('en-GB'));
203
+ let res = await (0, email_base_1.sendEmailSes)({
204
+ attachments,
205
+ subject: modifiedSubject,
206
+ content: modifiedContent,
207
+ toMailList: email.emailRecipients
208
+ .filter(er => er.type == 'to')
209
+ .map(er => {
210
+ return er.emailAddress;
211
+ }) || [],
212
+ ccMailList: email.emailRecipients
213
+ .filter(er => er.type == 'cc')
214
+ .map(er => {
215
+ return er.emailAddress;
216
+ }) || []
217
+ });
218
+ await (0, typeorm_1.getRepository)(entities_1.Email).update({ id: email.id }, { lastSent: new Date().toISOString() });
219
+ performance.mark(`processEmailCronJob end:(${email.id})`);
220
+ }
221
+ catch (e) {
222
+ performance.mark(`processEmailCronJob end:(${email.id})`);
223
+ env_1.logger.error(`[send-email] processEmailCronJob(${email.id}): ${e}`);
224
+ }
225
+ finally {
226
+ let perf = performance.measure(`emailId:${email.id}`, `processEmailCronJob start:(${email.id})`, `processEmailCronJob end:(${email.id})`);
227
+ env_1.logger.info(`processEmailCronJob performance: ${perf.toJSON()}`);
177
228
  }
178
- // modify content and subject
179
- let bizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
180
- where: { domain: email.domain },
181
- relations: ['company']
182
- });
183
- let modifiedContent = email.content.replace('{{companyName}}', bizplace.company.name);
184
- let modifiedSubject = email.subject.replace('{{warehouseName}}', email.domain.name);
185
- modifiedSubject = modifiedSubject.replace('{{reportDate}}', new Date().toLocaleDateString('en-GB'));
186
- //
187
- let res = await (0, email_base_1.sendEmailSes)({
188
- attachments,
189
- subject: modifiedSubject,
190
- content: modifiedContent,
191
- toMailList: email.emailRecipients
192
- .filter(er => er.type == 'to')
193
- .map(er => {
194
- return er.emailAddress;
195
- }) || [],
196
- ccMailList: email.emailRecipients
197
- .filter(er => er.type == 'cc')
198
- .map(er => {
199
- return er.emailAddress;
200
- }) || []
201
- });
202
- await (0, typeorm_1.getRepository)(entities_1.Email).update({ id: email.id }, { lastSent: new Date().toISOString() });
203
229
  }
204
230
  //# sourceMappingURL=send-emails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"send-emails.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/email/send-emails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send-emails.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/email/send-emails.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lodash_1 = __importDefault(require("lodash"));
6
7
  const typeorm_1 = require("typeorm");
7
8
  const api_1 = require("@things-factory/api");
8
9
  const sales_base_1 = require("@things-factory/sales-base");
9
- const error_util_1 = require("../utils/error-util");
10
- const lodash_1 = __importDefault(require("lodash"));
11
10
  const middlewares_1 = require("../middlewares");
11
+ const error_util_1 = require("../utils/error-util");
12
12
  api_1.restfulApiRouter.get('/v1/warehouse/get-inbound-order-details', middlewares_1.businessMiddleware, middlewares_1.validationMiddleware, middlewares_1.loggingMiddleware, async (context, next) => {
13
13
  var _a, _b, _c, _d;
14
14
  try {
@@ -40,6 +40,8 @@ api_1.restfulApiRouter.get('/v1/warehouse/get-inbound-order-details', middleware
40
40
  batchId: orderProduct.batchId,
41
41
  packingType: orderProduct.packingType,
42
42
  packingSize: orderProduct.packingSize,
43
+ uom: orderProduct.uom,
44
+ uomValue: orderProduct.uomValue,
43
45
  qty: orderProduct.packQty,
44
46
  palletQty: orderProduct.palletQty
45
47
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-inbound-order-details.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-inbound-order-details.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lodash_1 = __importDefault(require("lodash"));
6
7
  const typeorm_1 = require("typeorm");
7
8
  const api_1 = require("@things-factory/api");
8
9
  const sales_base_1 = require("@things-factory/sales-base");
9
- const error_util_1 = require("../utils/error-util");
10
- const lodash_1 = __importDefault(require("lodash"));
11
10
  const middlewares_1 = require("../middlewares");
11
+ const error_util_1 = require("../utils/error-util");
12
12
  api_1.restfulApiRouter.get('/v1/warehouse/get-inbound-order-list', middlewares_1.businessMiddleware, middlewares_1.validationMiddleware, middlewares_1.loggingMiddleware, async (context, next) => {
13
13
  var _a, _b, _c, _d;
14
14
  try {
@@ -48,6 +48,8 @@ api_1.restfulApiRouter.get('/v1/warehouse/get-inbound-order-list', middlewares_1
48
48
  batchId: orderProduct.batchId,
49
49
  packingType: orderProduct.packingType,
50
50
  packingSize: orderProduct.packingSize,
51
+ uom: orderProduct.uom,
52
+ uomValue: orderProduct.uomValue,
51
53
  qty: orderProduct.packQty,
52
54
  palletQty: orderProduct.palletQty
53
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-inbound-order-list.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-inbound-order-list.js","sourceRoot":"","sources":["../../../../../../server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts"],"names":[],"mappings":"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"}
@@ -184,6 +184,13 @@ definitions:
184
184
  packingSize:
185
185
  type: 'integer'
186
186
  example: 24
187
+ uom:
188
+ type: 'string'
189
+ example: 'UNIT'
190
+ uomValue:
191
+ type: 'integer'
192
+ format: 'double'
193
+ example: 24
187
194
  qty:
188
195
  type: 'integer'
189
196
  example: 1
@@ -302,6 +309,13 @@ definitions:
302
309
  packingSize:
303
310
  type: 'integer'
304
311
  example: 24
312
+ uom:
313
+ type: 'string'
314
+ example: 'UNIT'
315
+ uomValue:
316
+ type: 'integer'
317
+ format: 'double'
318
+ example: 24
305
319
  qty:
306
320
  type: 'integer'
307
321
  example: 1
@@ -597,7 +611,7 @@ paths:
597
611
  properties:
598
612
  bizplaceId:
599
613
  type: 'string'
600
- example: 'ed2cd631-ac50-44aa-b798-6567d7acde63''(MANDATORY)'
614
+ example: "ed2cd631-ac50-44aa-b798-6567d7acde63'(MANDATORY)"
601
615
  required: true
602
616
  refNo:
603
617
  type: 'string'
@@ -610,10 +624,10 @@ paths:
610
624
  example: 'reference doc 3'
611
625
  etaDate:
612
626
  type: 'string'
613
- example: '2019-10-31''(MANDATORY)'
627
+ example: "2019-10-31'(MANDATORY)"
614
628
  required: true
615
629
  ownTransport:
616
- type: 'boolean''(MANDATORY)'
630
+ type: "boolean'(MANDATORY)"
617
631
  example: false
618
632
  importCargo:
619
633
  type: 'boolean'
@@ -635,7 +649,7 @@ paths:
635
649
  example: '5 tonnes //compulsory when container is true'
636
650
  supplierId:
637
651
  type: 'string'
638
- example: '69a462c5-9a58-4a61-915d-7ef4c31c8937''(MANDATORY)'
652
+ example: "69a462c5-9a58-4a61-915d-7ef4c31c8937'(MANDATORY)"
639
653
  orderProducts:
640
654
  type: 'array'
641
655
  items:
@@ -652,7 +666,7 @@ paths:
652
666
  properties:
653
667
  sku:
654
668
  type: 'string'
655
- example: '00F8Y6''(MANDATORY)'
669
+ example: "00F8Y6'(MANDATORY)"
656
670
  refCode:
657
671
  type: 'string'
658
672
  example: 'string'
@@ -665,7 +679,7 @@ paths:
665
679
  example: 24
666
680
  batchId:
667
681
  type: 'string'
668
- example: 'batch no 1''(MANDATORY)'
682
+ example: "batch no 1'(MANDATORY)"
669
683
  required: true
670
684
  packingType:
671
685
  type: 'string'
@@ -711,15 +725,15 @@ paths:
711
725
  properties:
712
726
  bizplaceId:
713
727
  type: 'string'
714
- example: 'ed2cd631-ac50-44aa-b798-6567d7acde63''(MANDATORY)'
728
+ example: "ed2cd631-ac50-44aa-b798-6567d7acde63'(MANDATORY)"
715
729
  required: true
716
730
  ganNo:
717
731
  type: 'string'
718
- example: 'xxxxx''(MANDATORY)'
732
+ example: "xxxxx'(MANDATORY)"
719
733
  required: true
720
734
  remark:
721
735
  type: 'string'
722
- example: 'reference reference''(MANDATORY)'
736
+ example: "reference reference'(MANDATORY)"
723
737
  required: true
724
738
  responses:
725
739
  '200':
@@ -920,11 +934,11 @@ paths:
920
934
  properties:
921
935
  bizplaceId:
922
936
  type: 'string'
923
- example: 'string''(MANDATORY)'
937
+ example: "string'(MANDATORY)"
924
938
  required: true
925
939
  ganNo:
926
940
  type: 'string'
927
- example: 'xxxxx''(MANDATORY)'
941
+ example: "xxxxx'(MANDATORY)"
928
942
  required: true
929
943
  responses:
930
944
  '200':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-hub",
3
- "version": "4.3.328",
3
+ "version": "4.3.330",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -92,7 +92,7 @@
92
92
  "@things-factory/pdf": "^4.3.281",
93
93
  "@things-factory/product-ui": "^4.3.326",
94
94
  "@things-factory/resource-ui": "^4.3.281",
95
- "@things-factory/sales-base": "^4.3.327",
95
+ "@things-factory/sales-base": "^4.3.329",
96
96
  "@things-factory/scene-data-transform": "^4.3.281",
97
97
  "@things-factory/scene-excel": "^4.3.281",
98
98
  "@things-factory/scene-firebase": "^4.3.281",
@@ -107,8 +107,8 @@
107
107
  "@things-factory/setting-ui": "^4.3.281",
108
108
  "@things-factory/shell": "^4.3.281",
109
109
  "@things-factory/system-ui": "^4.3.281",
110
- "@things-factory/warehouse-base": "^4.3.327",
111
- "@things-factory/worksheet-base": "^4.3.328",
110
+ "@things-factory/warehouse-base": "^4.3.329",
111
+ "@things-factory/worksheet-base": "^4.3.329",
112
112
  "cron-parser": "^4.7.0",
113
113
  "koa2-swagger-ui": "^5.0.2",
114
114
  "swagger-jsdoc": "^5.0.0",
@@ -120,5 +120,5 @@
120
120
  "resolutions": {
121
121
  "core-js": "^3.16.0"
122
122
  },
123
- "gitHead": "ea17231f1c60f87434619bceefaf52fb966b9d20"
123
+ "gitHead": "ad3bfe98841ad43e4c789cbd6cd0742321897c2a"
124
124
  }
@@ -1,15 +1,26 @@
1
1
  import * as cronParser from 'cron-parser'
2
2
  import gql from 'graphql-tag'
3
- import { getRepository, In } from 'typeorm'
4
-
5
- import { Partner, User } from '@things-factory/auth-base'
3
+ import {
4
+ getRepository,
5
+ In
6
+ } from 'typeorm'
7
+
8
+ import {
9
+ Partner,
10
+ User
11
+ } from '@things-factory/auth-base'
6
12
  import { Bizplace } from '@things-factory/biz-base'
7
- import { objDataToExcel, sendEmailSes } from '@things-factory/email-base'
13
+ import {
14
+ objDataToExcel,
15
+ sendEmailSes
16
+ } from '@things-factory/email-base'
8
17
  import { logger } from '@things-factory/env'
9
18
  import { GraphqlLocalClient } from '@things-factory/shell'
10
19
 
11
20
  import { Email } from '../../../entities'
12
21
 
22
+ const { PerformanceObserver, performance } = require('node:perf_hooks')
23
+
13
24
  const EMAIL_SEARCH_INTERVAL = 35
14
25
 
15
26
  export const sendEmailsResolver = {
@@ -30,7 +41,7 @@ export const sendEmailsResolver = {
30
41
 
31
42
  if (dag < now && dag > thirtyMinsAgo) {
32
43
  try {
33
- processEmailCronJob(email, startDate.toISOString(), now.toISOString()) // removed await
44
+ processEmailCronJob(email, startDate.toISOString(), now.toISOString()) // removed await
34
45
  } catch (e) {
35
46
  logger.error(`[auto_email_log_by_id(${email.id})] ${e}`)
36
47
  }
@@ -39,171 +50,197 @@ export const sendEmailsResolver = {
39
50
  } catch (e) {
40
51
  logger.error(`[auto_email_log] ${e}`)
41
52
  }
42
-
43
53
  return true
44
54
  }
45
55
  }
46
56
 
47
57
  function replaceValues(variablesString: string, values: any = []) {
48
- for (let obj of values) {
49
- variablesString = variablesString.replace(obj.name, obj.value)
50
- }
51
- return JSON.parse(variablesString)
58
+
59
+ for (let obj of values) {
60
+ variablesString = variablesString.replace(obj.name, obj.value)
61
+ }
62
+ return JSON.parse(variablesString)
63
+
52
64
  }
53
65
 
54
66
  // NOTE: might show unused because of usage in eval function
55
67
  function flattenObject(obj, delimiter = '|') {
56
- var objResult = {}
57
- for (var items in obj) {
58
- if (!Object.hasOwnProperty.bind(obj)(items)) continue
59
68
 
60
- if (!!obj[items] && typeof obj[items] == 'object') {
61
- var flatObject = flattenObject(obj[items], delimiter)
62
- for (var x in flatObject) {
63
- if (!Object.hasOwnProperty.bind(flatObject)(x)) continue
69
+ var objResult = {}
70
+ for (var items in obj) {
71
+ if (!Object.hasOwnProperty.bind(obj)(items)) continue
72
+
73
+ if (!!obj[items] && typeof obj[items] == 'object') {
74
+ var flatObject = flattenObject(obj[items], delimiter)
75
+ for (var x in flatObject) {
76
+ if (!Object.hasOwnProperty.bind(flatObject)(x)) continue
64
77
 
65
- objResult[items + delimiter + x] = flatObject[x]
78
+ objResult[items + delimiter + x] = flatObject[x]
79
+ }
80
+ } else {
81
+ objResult[items] = obj[items]
66
82
  }
67
- } else {
68
- objResult[items] = obj[items]
69
83
  }
70
- }
71
- return objResult
84
+ return objResult
72
85
  }
73
86
 
74
87
  async function processEmailCronJob(email, fromDate, toDate) {
75
- let attachments: any = []
76
- // black list filtration
77
- // let partnerBlackList = JSON.parse(email.partnerBlackList) || []
78
-
79
- // partner list
80
- let partnerList = JSON.parse(email.partnerList) || []
81
-
82
- const partners: Partner[] = await getRepository(Partner).find({
83
- where: { domain: email.domain, id: In(partnerList) },
84
- relations: ['partnerDomain']
85
- })
86
-
87
- // retrieve and process xlsx attachmennts
88
- for (let attachment of email.emailAttachments) {
89
- let client = GraphqlLocalClient.client
90
- let attachmentVariables = JSON.parse(attachment.attachmentVariables)
91
- let numberOfMonths: number = attachmentVariables?.numberOfMonths || 1
92
- let numberOfWeeks: number = attachmentVariables?.numberOfWeeks ? attachmentVariables.numberOfWeeks * 7 : 7
93
- let numberOfDays: number = attachmentVariables?.numberOfDays || 1
94
-
95
- for (let partner of partners) {
96
- const bizplace: Bizplace = await getRepository(Bizplace).findOne({
97
- where: { domain: partner.partnerDomain }
98
- })
99
-
100
- // date params processing
101
- // let dateValue = new Date()
102
- // let yesterday = dateValue.getDate() - 1
103
- // let yesterdayBegin: any = new Date(dateValue.setDate(yesterday))
104
- // let yesterdayEnd: any = new Date(dateValue.setDate(yesterday))
105
-
106
- // yesterdayBegin.setHours(0, 0, 0, 0)
107
- // yesterdayEnd.setHours(23, 59, 59, 999)
108
-
109
- let timezoneOffset = email?.timezoneOffset || 0
110
-
111
- let curDate = new Date()
112
- let curDateForMonth = new Date(curDate)
113
- let curDateForWeek = new Date(curDate)
114
- let curDateForDay = new Date(curDate)
115
-
116
- let prevMonth = curDateForMonth.getMonth() - numberOfMonths
117
- let prevMonthBegin: any = new Date(curDateForMonth.setMonth(prevMonth))
118
- prevMonthBegin.setHours(0, 0, 0, 0)
119
- let prevMonthBeginDateTime = new Date(prevMonthBegin - timezoneOffset * 60000).toISOString()
120
-
121
- let prevWeek = curDateForWeek.getDate() - numberOfWeeks // subtract 1 week
122
- let prevWeekBegin: any = new Date(curDateForWeek.setDate(prevWeek))
123
- prevWeekBegin.setHours(0, 0, 0, 0)
124
- let prevWeekBeginDateTime = new Date(prevWeekBegin - timezoneOffset * 60000).toISOString()
125
-
126
- let prevDay = curDateForDay.getDate() - numberOfDays // subtract 1 day
127
- let prevDayBegin: any = new Date(curDateForDay.setDate(prevDay))
128
- prevDayBegin.setHours(0, 0, 0, 0)
129
- let prevDayBeginDateTime = new Date(prevDayBegin - timezoneOffset * 60000).toISOString()
130
-
131
- let endDate: any = curDate
132
- endDate.setHours(23, 59, 59, 999)
133
- let endDateTime = new Date(endDate - timezoneOffset * 60000).toISOString()
134
-
135
- // let fromDate = new Date(yesterdayBegin - timezoneOffset * 60000).toISOString()
136
- // let toDate = new Date(yesterdayEnd - timezoneOffset * 60000).toISOString()
137
-
138
- // to trace UTC conversion in production
139
- logger.info(`[email_utc_conversion] fromDate: ${fromDate}, toDate: ${toDate}`)
140
-
141
- let variables = replaceValues(attachment.variables, [
142
- { name: '{{bizplaceId}}', value: `"${bizplace.id}"` },
143
- { name: '{{timezoneOffset}}', value: `${timezoneOffset}` },
144
- { name: '{{lastRunDateTime}}', value: `"${fromDate}"` },
145
- { name: '{{toDateTime}}', value: `"${endDateTime}"` },
146
- { name: '{{prevMonthBeginDateTime}}', value: `"${prevMonthBeginDateTime}"` },
147
- { name: '{{prevWeekBeginDateTime}}', value: `"${prevWeekBeginDateTime}"` },
148
- { name: '{{prevDayBeginDateTime}}', value: `"${prevDayBeginDateTime}"` }
149
- ])
150
-
151
- let user: User = email.creator
152
- delete user.creatorId
153
- delete user.updaterId
154
-
155
- // might show unused because of usage in eval
156
- const response = await client.query({
157
- query: gql`
158
- ${attachment.gqlString}
159
- `,
160
- variables: variables || {},
161
- context: { state: { domain: email.domain, user } }
162
- } as any)
163
-
164
- let mappedResponse = eval(attachment.mappingFunction)
165
-
166
- let header = JSON.parse(attachment.headers)
167
-
168
- let excelResponse = await objDataToExcel({ name: 'name', data: { header, data: mappedResponse } })
169
-
170
- attachments.push({
171
- filename: `${bizplace.name} - ${attachment.name}.xlsx`,
172
- content: excelResponse,
173
- contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
174
- })
88
+
89
+ try {
90
+ performance.mark(`processEmailCronJob start:(${email.id})`)
91
+ // processEmailStartTime = performance.now()
92
+ let attachments: any = []
93
+ // black list filtration
94
+ // let partnerBlackList = JSON.parse(email.partnerBlackList) || []
95
+
96
+ // partner list
97
+ let partnerList = JSON.parse(email.partnerList) || []
98
+
99
+ const partners: Partner[] = await getRepository(Partner).find({
100
+ where: { domain: email.domain, id: In(partnerList) },
101
+ relations: ['partnerDomain']
102
+ })
103
+
104
+ // retrieve and process xlsx attachmennts
105
+ for (let attachment of email.emailAttachments) {
106
+ let client = GraphqlLocalClient.client
107
+ let attachmentVariables = JSON.parse(attachment.attachmentVariables)
108
+ let numberOfMonths: number = attachmentVariables?.numberOfMonths || 1
109
+ let numberOfWeeks: number = attachmentVariables?.numberOfWeeks ? attachmentVariables.numberOfWeeks * 7 : 7
110
+ let numberOfDays: number = attachmentVariables?.numberOfDays || 1
111
+
112
+ for (let partner of partners) {
113
+ const bizplace: Bizplace = await getRepository(Bizplace).findOne({
114
+ where: { domain: partner.partnerDomain }
115
+ })
116
+
117
+ // date params processing
118
+ // let dateValue = new Date()
119
+ // let yesterday = dateValue.getDate() - 1
120
+ // let yesterdayBegin: any = new Date(dateValue.setDate(yesterday))
121
+ // let yesterdayEnd: any = new Date(dateValue.setDate(yesterday))
122
+
123
+ // yesterdayBegin.setHours(0, 0, 0, 0)
124
+ // yesterdayEnd.setHours(23, 59, 59, 999)
125
+
126
+ let timezoneOffset = email?.timezoneOffset || 0
127
+
128
+ let curDate = new Date()
129
+ let curDateForMonth = new Date(curDate)
130
+ let curDateForWeek = new Date(curDate)
131
+ let curDateForDay = new Date(curDate)
132
+
133
+ let prevMonth = curDateForMonth.getMonth() - numberOfMonths
134
+ let prevMonthBegin: any = new Date(curDateForMonth.setMonth(prevMonth))
135
+ prevMonthBegin.setHours(0, 0, 0, 0)
136
+ let prevMonthBeginDateTime = new Date(prevMonthBegin - timezoneOffset * 60000).toISOString()
137
+
138
+ let prevWeek = curDateForWeek.getDate() - numberOfWeeks // subtract 1 week
139
+ let prevWeekBegin: any = new Date(curDateForWeek.setDate(prevWeek))
140
+ prevWeekBegin.setHours(0, 0, 0, 0)
141
+ let prevWeekBeginDateTime = new Date(prevWeekBegin - timezoneOffset * 60000).toISOString()
142
+
143
+ let prevDay = curDateForDay.getDate() - numberOfDays // subtract 1 day
144
+ let prevDayBegin: any = new Date(curDateForDay.setDate(prevDay))
145
+ prevDayBegin.setHours(0, 0, 0, 0)
146
+ let prevDayBeginDateTime = new Date(prevDayBegin - timezoneOffset * 60000).toISOString()
147
+
148
+ let endDate: any = curDate
149
+ endDate.setHours(23, 59, 59, 999)
150
+ let endDateTime = new Date(endDate - timezoneOffset * 60000).toISOString()
151
+
152
+ // let fromDate = new Date(yesterdayBegin - timezoneOffset * 60000).toISOString()
153
+ // let toDate = new Date(yesterdayEnd - timezoneOffset * 60000).toISOString()
154
+
155
+ // to trace UTC conversion in production
156
+ logger.info(`[email_utc_conversion] fromDate: ${fromDate}, toDate: ${toDate}`)
157
+
158
+ let variables = replaceValues(attachment.variables, [
159
+ { name: '{{bizplaceId}}', value: `"${bizplace.id}"` },
160
+ { name: '{{timezoneOffset}}', value: `${timezoneOffset}` },
161
+ { name: '{{lastRunDateTime}}', value: `"${fromDate}"` },
162
+ { name: '{{toDateTime}}', value: `"${endDateTime}"` },
163
+ { name: '{{prevMonthBeginDateTime}}', value: `"${prevMonthBeginDateTime}"` },
164
+ { name: '{{prevWeekBeginDateTime}}', value: `"${prevWeekBeginDateTime}"` },
165
+ { name: '{{prevDayBeginDateTime}}', value: `"${prevDayBeginDateTime}"` }
166
+ ])
167
+
168
+ let user: User = email.creator
169
+ delete user.creatorId
170
+ delete user.updaterId
171
+
172
+ // might show unused because of usage in eval
173
+ const response = await client.query({
174
+ query: gql`
175
+ ${attachment.gqlString}
176
+ `,
177
+ variables: variables || {},
178
+ context: { state: { domain: email.domain, user } }
179
+ } as any)
180
+
181
+ let excelResponse
182
+
183
+ try {
184
+ performance.mark(`objDataToExcel start:${email.id}`)
185
+ let mappedResponse = eval(attachment.mappingFunction)
186
+
187
+ let header = JSON.parse(attachment.headers)
188
+
189
+ excelResponse = await objDataToExcel({ name: 'name', data: { header, data: mappedResponse } })
190
+
191
+ performance.mark(`objDataToExcel end:${email.id}`)
192
+
193
+ } catch (e) {
194
+ performance.mark(`objDataToExcel end:${email.id}`)
195
+ logger.error(`[send-email] objDataToExcel(${email.id}): ${e}`)
196
+ } finally {
197
+ let perf = performance.measure(`emailId:${email.id}`, `objDataToExcel start:${email.id}`, `objDataToExcel end:${email.id}`)
198
+ logger.info(`objDataToExcel performance: ${perf.toJSON()}`)
199
+ }
200
+
201
+ attachments.push({
202
+ filename: `${bizplace.name} - ${attachment.name}.xlsx`,
203
+ content: excelResponse,
204
+ contentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
205
+ })
206
+ }
175
207
  }
176
- }
177
208
 
178
- // modify content and subject
179
- let bizplace: Bizplace = await getRepository(Bizplace).findOne({
180
- where: { domain: email.domain },
181
- relations: ['company']
182
- })
183
-
184
- let modifiedContent = email.content.replace('{{companyName}}', bizplace.company.name)
185
-
186
- let modifiedSubject = email.subject.replace('{{warehouseName}}', email.domain.name)
187
- modifiedSubject = modifiedSubject.replace('{{reportDate}}', new Date().toLocaleDateString('en-GB'))
188
- //
189
-
190
- let res = await sendEmailSes({
191
- attachments,
192
- subject: modifiedSubject,
193
- content: modifiedContent,
194
- toMailList:
195
- email.emailRecipients
196
- .filter(er => er.type == 'to')
197
- .map(er => {
198
- return er.emailAddress
199
- }) || [],
200
- ccMailList:
201
- email.emailRecipients
202
- .filter(er => er.type == 'cc')
203
- .map(er => {
204
- return er.emailAddress
205
- }) || []
206
- })
207
-
208
- await getRepository(Email).update({ id: email.id }, { lastSent: new Date().toISOString() })
209
+ // modify content and subject
210
+ let bizplace: Bizplace = await getRepository(Bizplace).findOne({
211
+ where: { domain: email.domain },
212
+ relations: ['company']
213
+ })
214
+
215
+ let modifiedContent = email.content.replace('{{companyName}}', bizplace.company.name)
216
+ let modifiedSubject = email.subject.replace('{{warehouseName}}', email.domain.name)
217
+ modifiedSubject = modifiedSubject.replace('{{reportDate}}', new Date().toLocaleDateString('en-GB'))
218
+
219
+ let res = await sendEmailSes({
220
+ attachments,
221
+ subject: modifiedSubject,
222
+ content: modifiedContent,
223
+ toMailList:
224
+ email.emailRecipients
225
+ .filter(er => er.type == 'to')
226
+ .map(er => {
227
+ return er.emailAddress
228
+ }) || [],
229
+ ccMailList:
230
+ email.emailRecipients
231
+ .filter(er => er.type == 'cc')
232
+ .map(er => {
233
+ return er.emailAddress
234
+ }) || []
235
+ })
236
+
237
+ await getRepository(Email).update({ id: email.id }, { lastSent: new Date().toISOString() })
238
+ performance.mark(`processEmailCronJob end:(${email.id})`)
239
+ } catch (e) {
240
+ performance.mark(`processEmailCronJob end:(${email.id})`)
241
+ logger.error(`[send-email] processEmailCronJob(${email.id}): ${e}`)
242
+ } finally {
243
+ let perf = performance.measure(`emailId:${email.id}`, `processEmailCronJob start:(${email.id})`, `processEmailCronJob end:(${email.id})`)
244
+ logger.info(`processEmailCronJob performance: ${perf.toJSON()}`)
245
+ }
209
246
  }
@@ -1,11 +1,11 @@
1
+ import _ from 'lodash'
1
2
  import { getRepository } from 'typeorm'
2
3
 
3
4
  import { restfulApiRouter as router } from '@things-factory/api'
4
5
  import { ArrivalNotice } from '@things-factory/sales-base'
5
6
 
7
+ import { businessMiddleware, loggingMiddleware, validationMiddleware } from '../middlewares'
6
8
  import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import _ from 'lodash'
8
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
9
9
 
10
10
  router.get(
11
11
  '/v1/warehouse/get-inbound-order-details',
@@ -44,6 +44,8 @@ router.get(
44
44
  batchId: orderProduct.batchId,
45
45
  packingType: orderProduct.packingType,
46
46
  packingSize: orderProduct.packingSize,
47
+ uom: orderProduct.uom,
48
+ uomValue: orderProduct.uomValue,
47
49
  qty: orderProduct.packQty,
48
50
  palletQty: orderProduct.palletQty
49
51
  }
@@ -1,11 +1,11 @@
1
+ import _ from 'lodash'
1
2
  import { Between, getRepository } from 'typeorm'
2
3
 
3
4
  import { restfulApiRouter as router } from '@things-factory/api'
4
5
  import { ArrivalNotice } from '@things-factory/sales-base'
5
6
 
7
+ import { businessMiddleware, loggingMiddleware, validationMiddleware } from '../middlewares'
6
8
  import { ApiError, ApiErrorHandler, throwInternalServerError } from '../utils/error-util'
7
- import _ from 'lodash'
8
- import { businessMiddleware, validationMiddleware, loggingMiddleware } from '../middlewares'
9
9
 
10
10
  router.get(
11
11
  '/v1/warehouse/get-inbound-order-list',
@@ -52,6 +52,8 @@ router.get(
52
52
  batchId: orderProduct.batchId,
53
53
  packingType: orderProduct.packingType,
54
54
  packingSize: orderProduct.packingSize,
55
+ uom: orderProduct.uom,
56
+ uomValue: orderProduct.uomValue,
55
57
  qty: orderProduct.packQty,
56
58
  palletQty: orderProduct.palletQty
57
59
  }