123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- const fs = require('fs');
- const turf = require('@turf/turf');
- const wkx = require('wkx');
- const Database = require('./db');
- const moment = require('moment');
- const uuid = require('uuid');
- const pool = new Database({
- host: '192.168.100.30',
- database: 'real3d',
- user: 'postgres',
- password: 'postgis',
- port: 5432,
- });
- async function importFactor(inFilePath) {
- // 连接到数据库,设置模式
- await pool.connect();
- await pool.setSchema('base');
- try {
- // 同步读取GeoJSON文件
- const data = fs.readFileSync(inFilePath, 'utf8');
- // 清空表 base.t_fzss_fzxz_factor
- const deleteSql = `delete from t_fzss_fzxz_factor`;
- await pool.query(deleteSql);
- // 解析GeoJSON数据
- const dataInfos = JSON.parse(data);
- importItems(dataInfos, "");
- console.log("插入因子成功")
- } catch (err) {
- console.error('操作GeoJSON文件时出错:', err);
- }
- }
- async function importItems(insertItems, parentId) {
- for (let index = 0; index < insertItems.length; index++) {
- const element = insertItems[index];
- // 生成uuid并且去掉下划线
- const id = uuid.v4().replace(/-/g, "");
- const insertObj = {
- id: id,
- bsm: element.bsm,
- name: element.name,
- level: element.level,
- parent_id: parentId,
- order_index: index,
- status: 1,
- condition_info: JSON.stringify(element.condition_info),
- }
- // 生成数据库的插入语句
- const insertSql = `insert into t_fzss_fzxz_factor (id,bsm,name,level,parent_id,order_index,status,condition_info) values('${insertObj.id}','${insertObj.bsm}','${insertObj.name}',${insertObj.level},'${insertObj.parent_id}',${insertObj.order_index},${insertObj.status},'${insertObj.condition_info}')`;
- console.log(insertSql);
- const res = await pool.query(insertSql);
- if (element.children && element.children.length > 0) {
- await importItems(element.children, id);
- }
- }
- }
- importFactor("./data/schedule/factor_info.json")
|