@steedos/data-import 2.5.17-beta.1 → 2.5.17-beta.11

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/README.md CHANGED
@@ -1,20 +1,19 @@
1
1
  <!--
2
2
  * @Author: sunhaolin@hotoa.com
3
3
  * @Date: 2021-10-21 09:57:01
4
- * @LastEditors: sunhaolin@hotoa.com
5
- * @LastEditTime: 2022-07-15 14:18:13
4
+ * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
+ * @LastEditTime: 2023-10-27 12:55:47
6
6
  * @Description:
7
7
  -->
8
8
  ## 功能说明
9
9
  - 此包是系统设置中的数据导入功能,可通过excel导入对象数据
10
10
 
11
- ### 提供importData函数支持导入.data.json、.data.csv、.flow.json数据
11
+ ### 提供importData action 支持导入{objectname}.data.json、{objectname}.data.csv、{flowApiname}.flow.data.json数据
12
12
 
13
- - 比如在自定义的软件包package.service.js中监听系统初始化事件或者服务启动时调用importData导入软件包中的数据:
13
+ - 比如在自定义的软件包package.service.js中监听系统初始化事件调用importData导入软件包中的数据:
14
14
 
15
15
  ```js
16
- const { importData } = require('@steedos/data-import')
17
- const path = require('path')
16
+
18
17
  module.exports = {
19
18
  /**
20
19
  * Events
@@ -22,26 +21,85 @@ module.exports = {
22
21
  events: {
23
22
  // 系统初始化成功
24
23
  'service-cloud-init.succeeded': async function (ctx) {
25
- await importData(path.join(__dirname, 'main', 'default', 'data'));
24
+ await this.broker.call("~packages-@steedos/data-import.importData", {
25
+ data: {
26
+ "csv": csvData,
27
+ "json": jsonData,
28
+ "flow": flowData,
29
+ },
30
+ spaceId,
31
+ onlyInsert: true,
32
+ })
26
33
  }
27
34
  },
28
- /**
29
- * Service started lifecycle event handler
30
- */
31
- async started() {
32
- await importData(path.join(__dirname, 'main', 'default', 'data'));
33
- },
34
35
  };
35
36
  ```
36
37
 
37
- - importData 函数参数说明
38
+ - importData action 参数说明
38
39
  ```js
39
40
  /**
40
- *
41
- * @param {*} filePath 要导入数据的文件夹路径
42
- * @param {*} onlyInsert 仅导入,在导入数据之前先检查,如果存在任意一条记录,则不执行导入,默认true,如果是false, 则如果存在则执行更新操作。
43
- */
44
- export async function importData(filePath: string, onlyInsert: boolean = true) {
45
- // 函数体
41
+ * 参数示例:
42
+ {
43
+ data: {
44
+ "csv": [{ objectName: 'warehouse', records: [ [Object] ]],
45
+ "json": [{ objectName: 'house', records: [ [Object] ]],
46
+ "flow": { flowApiName1: {}, flowApiName2: {} },
47
+ },
48
+ spaceId,
49
+ onlyInsert: true,
50
+ }
51
+ */
52
+ "importData": {
53
+ params: {
54
+ data: {
55
+ type: "object",
56
+ props: {
57
+ csv: {
58
+ type: "array",
59
+ items: {
60
+ type: "object",
61
+ props: {
62
+ objectName: { type: "string" },
63
+ records: { type: "array", items: "object" },
64
+ }
65
+ },
66
+ optional: true,
67
+ },
68
+ json: {
69
+ type: "array",
70
+ items: {
71
+ type: "object",
72
+ props: {
73
+ objectName: { type: "string" },
74
+ records: { type: "array", items: "object" },
75
+ }
76
+ },
77
+ optional: true,
78
+ },
79
+ flow: {
80
+ type: "object",
81
+ optional: true,
82
+ },
83
+ }
84
+ },
85
+ spaceId: { type: "string" },
86
+ onlyInsert: { type: "boolean", optional: true, default: true }, // 仅新增,在导入数据之前先检查,如果存在任意一条记录,则不执行导入,默认true,如果是false, 则如果存在则执行更新操作。
87
+ },
88
+ async handler(ctx) {
89
+
90
+ }
46
91
  }
47
- ```
92
+ ```
93
+ ## 使用mongodb cli 导出演示数据
94
+ - json: 使用命令导出。例如: `mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --jsonArray --collection=contract_types --out=contract_types.data.json`
95
+ - csv: 使用命令导出。例如: `mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --collection=contract_types --type=csv --fields=name,code --out=contract_types.data.csv`
96
+
97
+ ## 编码要求
98
+ json、csv中文件请使用`utf-8`编码
99
+
100
+ ## 示例,导出合同模块数据, 进入`main\default\data`文件夹后执行以下命令
101
+ ```
102
+ mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --collection=contract_types --type=csv --fields=name,code --out=contract_types.data.csv
103
+
104
+ mongoexport --uri="mongodb://192.168.3.31:27017/steedos-apps" --jsonArray --collection=contracts --out=contracts.data.json
105
+ ```
@@ -4,5 +4,5 @@ export default class ImportFlow implements Base {
4
4
  userSession: any;
5
5
  constructor(userSession: any);
6
6
  readFile(filePath: string): any;
7
- fileRecordsToDB(filePath: string): Promise<void>;
7
+ fileRecordsToDB(flows: object): Promise<void>;
8
8
  }
@@ -51,10 +51,9 @@ class ImportFlow {
51
51
  }
52
52
  return flows;
53
53
  }
54
- async fileRecordsToDB(filePath) {
54
+ async fileRecordsToDB(flows) {
55
55
  const dbManager = new dbManager_1.DbManager(this.userSession);
56
56
  try {
57
- const flows = await this.readFile(filePath);
58
57
  await dbManager.connect();
59
58
  const session = await dbManager.startSession();
60
59
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"ImportFlow.js","sourceRoot":"","sources":["../../src/imports/ImportFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImportFlow.js","sourceRoot":"","sources":["../../src/imports/ImportFlow.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Base } from './Base';
2
+ import { readFileResult } from '..';
2
3
  export default class ImportJson implements Base {
3
4
  userSession: any;
4
5
  constructor(userSession: any);
@@ -7,5 +8,5 @@ export default class ImportJson implements Base {
7
8
  objectName: string;
8
9
  records: Array<any>;
9
10
  }>>;
10
- fileRecordsToDB(filePath: string): Promise<void>;
11
+ fileRecordsToDB(jsonData: readFileResult[]): Promise<void>;
11
12
  }
@@ -38,14 +38,13 @@ class ImportJson {
38
38
  });
39
39
  return results;
40
40
  }
41
- async fileRecordsToDB(filePath) {
41
+ async fileRecordsToDB(jsonData) {
42
42
  const userSession = this.userSession;
43
43
  const { spaceId, userId, company_id, company_ids } = userSession;
44
44
  var dbManager = new dbManager_1.DbManager(userSession);
45
45
  const now = new Date();
46
46
  try {
47
- let results = await this.readFile(filePath);
48
- results = (0, __1.formatResults)(results, userSession);
47
+ let results = (0, __1.formatResults)(jsonData, userSession);
49
48
  await dbManager.connect();
50
49
  await (0, __1.preCreateCollection)(dbManager, results);
51
50
  var session = await dbManager.startSession();
@@ -1 +1 @@
1
- {"version":3,"file":"ImportJson.js","sourceRoot":"","sources":["../../src/imports/ImportJson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImportJson.js","sourceRoot":"","sources":["../../src/imports/ImportJson.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,10 +1,14 @@
1
1
  import { userSessionType } from './types';
2
2
  export declare function getUserSession(spaceId?: string): Promise<userSessionType | any>;
3
3
  export declare function preCreateCollection(dbManager: any, results: readFileResult[]): Promise<void>;
4
- declare type readFileResult = {
4
+ export declare type readFileResult = {
5
5
  readonly objectName: string;
6
6
  readonly records: any[];
7
7
  };
8
+ export declare type importDataType = {
9
+ csv: readFileResult[];
10
+ json: readFileResult[];
11
+ flow: object;
12
+ };
8
13
  export declare function formatResults(results: readFileResult[], userSession: userSessionType): readFileResult[];
9
- export declare function importData(filePath: string, onlyInsert?: boolean, spaceId?: string): Promise<void>;
10
- export {};
14
+ export declare function importData(data: importDataType, onlyInsert?: boolean, spaceId?: string): Promise<void>;
package/lib/index.js CHANGED
@@ -10,6 +10,7 @@ const objectql_1 = require("@steedos/objectql");
10
10
  const ImportJson_1 = __importDefault(require("./imports/ImportJson"));
11
11
  const ImportCsv_1 = __importDefault(require("./imports/ImportCsv"));
12
12
  const ImportFlow_1 = __importDefault(require("./imports/ImportFlow"));
13
+ const lodash_2 = __importDefault(require("lodash"));
13
14
  async function getUserSession(spaceId) {
14
15
  var dbManager = new dbManager_1.DbManager({});
15
16
  const now = new Date();
@@ -57,7 +58,11 @@ async function preCreateCollection(dbManager, results) {
57
58
  for (const result of results) {
58
59
  const objectName = result.objectName;
59
60
  if (!collectionsMap[objectName]) {
60
- await db.createCollection(objectName, options);
61
+ try {
62
+ await db.createCollection(objectName, options);
63
+ }
64
+ catch (error) {
65
+ }
61
66
  }
62
67
  }
63
68
  }
@@ -67,21 +72,26 @@ function formatResults(results, userSession) {
67
72
  return JSON.parse(JSON.stringify(results).replace(/\${space_id}/g, spaceId).replace(/\${space_owner_id}/g, userId));
68
73
  }
69
74
  exports.formatResults = formatResults;
70
- async function importData(filePath, onlyInsert = true, spaceId) {
75
+ async function importData(data, onlyInsert = true, spaceId) {
71
76
  const userSession = await getUserSession(spaceId);
72
77
  if ((0, lodash_1.isEmpty)(userSession)) {
73
78
  return;
74
79
  }
80
+ if (lodash_2.default.isEmpty(data)) {
81
+ return;
82
+ }
75
83
  const importer = {
76
84
  csv: new ImportCsv_1.default(userSession),
77
85
  json: new ImportJson_1.default(userSession),
78
86
  flow: new ImportFlow_1.default(userSession)
79
87
  };
88
+ const csvData = (data === null || data === void 0 ? void 0 : data.csv) || [];
89
+ const jsonData = (data === null || data === void 0 ? void 0 : data.json) || [];
90
+ const flowData = (data === null || data === void 0 ? void 0 : data.flow) || {};
80
91
  if (onlyInsert) {
81
92
  var dbManager = new dbManager_1.DbManager(userSession);
82
93
  try {
83
94
  await dbManager.connect();
84
- const csvData = await importer.csv.readFile(filePath);
85
95
  for (const result of csvData) {
86
96
  for (let record of result.records) {
87
97
  const dbRecord = await dbManager.findOne(result.objectName, { _id: record._id }, true);
@@ -90,16 +100,15 @@ async function importData(filePath, onlyInsert = true, spaceId) {
90
100
  }
91
101
  }
92
102
  }
93
- const jsonData = await importer.json.readFile(filePath);
94
103
  for (const result of jsonData) {
95
- for (let record of result.records) {
96
- const dbRecord = await dbManager.findOne(result.objectName, { _id: record._id }, true);
97
- if (dbRecord) {
98
- throw new Error(`停止导入数据:${result.objectName}对象的${record._id}记录已存在`);
99
- }
104
+ const objectName = result.objectName;
105
+ const records = result.records;
106
+ const recordsIds = lodash_2.default.map(records, '_id');
107
+ const dbRecords = await dbManager.find(objectName, { _id: { $in: recordsIds } }, false, 0, { projection: { _id: 1 } });
108
+ if (dbRecords.length > 0) {
109
+ throw new Error(`停止导入数据:${result.objectName}对象已存在${dbRecords.length}条记录`);
100
110
  }
101
111
  }
102
- const flowData = await importer.flow.readFile(filePath);
103
112
  for (const formName in flowData) {
104
113
  var form = flowData[formName];
105
114
  let flowApiName = form.api_name;
@@ -120,9 +129,9 @@ async function importData(filePath, onlyInsert = true, spaceId) {
120
129
  await dbManager.close();
121
130
  }
122
131
  }
123
- importer.csv.fileRecordsToDB(filePath);
124
- importer.json.fileRecordsToDB(filePath);
125
- importer.flow.fileRecordsToDB(filePath);
132
+ importer.csv.fileRecordsToDB(csvData);
133
+ importer.json.fileRecordsToDB(jsonData);
134
+ importer.flow.fileRecordsToDB(flowData);
126
135
  }
127
136
  exports.importData = importData;
128
137
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@steedos/data-import",
3
- "version": "2.5.17-beta.1",
3
+ "version": "2.5.17-beta.11",
4
4
  "main": "lib/index.js",
5
5
  "license": "MIT",
6
6
  "scripts": {
7
7
  "build": "rm -rf ./lib && tsc"
8
8
  },
9
9
  "dependencies": {
10
- "@steedos/core": "2.5.17-beta.1",
11
- "@steedos/metadata-api": "2.5.17-beta.1",
12
- "@steedos/metadata-core": "2.5.17-beta.1",
13
- "@steedos/objectql": "2.5.17-beta.1",
10
+ "@steedos/core": "2.5.17-beta.11",
11
+ "@steedos/metadata-api": "2.5.17-beta.11",
12
+ "@steedos/metadata-core": "2.5.17-beta.11",
13
+ "@steedos/objectql": "2.5.17-beta.11",
14
14
  "bson": "4.6.4",
15
15
  "csvtojson": "~2.0.10",
16
16
  "dotenv-flow": "^3.1.0",
@@ -24,5 +24,5 @@
24
24
  "publishConfig": {
25
25
  "access": "public"
26
26
  },
27
- "gitHead": "b114deaebaecf9e2353b1892aa52175cc436cf9a"
27
+ "gitHead": "5403db8f885eb218c84607088678ea21a5978050"
28
28
  }
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2022-03-28 09:35:34
4
- * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2022-11-09 11:53:36
4
+ * @LastEditors: 孙浩林 sunhaolin@steedos.com
5
+ * @LastEditTime: 2023-10-27 12:09:49
6
6
  * @Description:
7
7
  */
8
8
  "use strict";
@@ -11,6 +11,7 @@ const packageName = project.name;
11
11
  const packageLoader = require('@steedos/service-package-loader');
12
12
  const path = require('path');
13
13
  const objectql = require('@steedos/objectql');
14
+ const { importData } = require('./lib')
14
15
  /**
15
16
  * @typedef {import('moleculer').Context} Context Moleculer's Context
16
17
  * 软件包服务启动后也需要抛出事件。
@@ -24,10 +25,10 @@ module.exports = {
24
25
  */
25
26
  settings: {
26
27
  packageInfo: {
27
- path: path.join(__dirname, 'lib'),
28
+ path: path.join(__dirname, 'lib'),
28
29
  name: packageName,
29
30
  isPackage: false
30
- }
31
+ }
31
32
  },
32
33
 
33
34
  /**
@@ -42,9 +43,11 @@ module.exports = {
42
43
  'hasImportTemplates': {
43
44
  async handler(ctx) {
44
45
  const { objectName } = ctx.params;
45
- const count = await objectql.getObject('queue_import').count({filters: [
46
- ['object_name', '=', objectName]
47
- ]});
46
+ const count = await objectql.getObject('queue_import').count({
47
+ filters: [
48
+ ['object_name', '=', objectName]
49
+ ]
50
+ });
48
51
  return count > 0
49
52
  }
50
53
  },
@@ -54,6 +57,59 @@ module.exports = {
54
57
  return records;
55
58
  }
56
59
  },
60
+ /**
61
+ * 参数示例:
62
+ {
63
+ data: {
64
+ "csv": [{ objectName: 'warehouse', records: [ [Object] ]],
65
+ "json": [{ objectName: 'house', records: [ [Object] ]],
66
+ "flow": { flowApiName1: {}, flowApiName2: {} },
67
+ },
68
+ spaceId,
69
+ onlyInsert: true,
70
+ }
71
+ */
72
+ "importData": {
73
+ params: {
74
+ data: {
75
+ type: "object",
76
+ props: {
77
+ csv: {
78
+ type: "array",
79
+ items: {
80
+ type: "object",
81
+ props: {
82
+ objectName: { type: "string" },
83
+ records: { type: "array", items: "object" },
84
+ }
85
+ },
86
+ optional: true,
87
+ },
88
+ json: {
89
+ type: "array",
90
+ items: {
91
+ type: "object",
92
+ props: {
93
+ objectName: { type: "string" },
94
+ records: { type: "array", items: "object" },
95
+ }
96
+ },
97
+ optional: true,
98
+ },
99
+ flow: {
100
+ type: "object",
101
+ optional: true,
102
+ },
103
+ }
104
+ },
105
+ spaceId: { type: "string" },
106
+ onlyInsert: { type: "boolean", optional: true, default: true },
107
+ },
108
+ async handler(ctx) {
109
+ const { data, spaceId, onlyInsert } = ctx.params;
110
+ await importData(data, onlyInsert, spaceId)
111
+ }
112
+ }
57
113
  },
58
114
 
59
115
  /**