四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

124 lines
4.1 KiB

try {
const { Pool, Client } = require('pg')
const XLSX = require('xlsx')
const path = require('path')
const fs = require("fs");
// 测试环境
const pool = new Pool({
user: 'highwayadmin',
host: '10.8.40.223',
database: 'highway4good',
password: 'highway123',
port: 5432,
})
const userId = 21
// 商用环境
// const pool = new Pool({
// user: 'highwayadmin',
// host: '10.8.40.223',
// database: 'highway4good',
// password: 'highway123',
// port: 5432,
// })
// const userId = ''
// 生成随机的时间字符串
function generateRandomTimeString () {
// 生成一个在指定时间范围内的随机日期对象
var startDate = new Date('2023-01-01');
var endDate = new Date('2023-07-31');
var randomDate = new Date(startDate.getTime() + Math.random() * (endDate.getTime() - startDate.getTime()));
// 从日期对象中提取年、月和日
var year = randomDate.getFullYear();
var month = String(randomDate.getMonth() + 1).padStart(2, '0');
var day = String(randomDate.getDate()).padStart(2, '0');
// 生成一个在指定时间范围内的随机小时数和分钟数
var hours = String(Math.floor(Math.random() * 10) + 8).padStart(2, '0');
var minutes = String(Math.floor(Math.random() * 60)).padStart(2, '0');
// 组合成时间字符串
var timeString = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':00';
return timeString;
}
const fun = async () => {
// note: we don't try/catch this because if connecting throws an exception
// we don't need to dispose of the client (it will be undefined)
const client = await pool.connect()
try {
await client.query('BEGIN')
console.log(`开始`);
console.warn('user_id 配置了吗?');
await new Promise(resolve => setTimeout(() => {
console.warn('user_id 配置的对吗?');
resolve()
}, 3000));
await new Promise(resolve => setTimeout(() => {
console.warn('user_id 配置的真的对吗?');
resolve()
}, 3000));
await new Promise(resolve => setTimeout(() => {
console.warn('开始喽');
resolve()
}, 1000));
await new Promise(resolve => setTimeout(() => {
console.warn('3');
resolve()
}, 1000));
await new Promise(resolve => setTimeout(() => {
console.warn('2');
resolve()
}, 1000));
await new Promise(resolve => setTimeout(() => {
console.warn('1');
resolve()
}, 1000));
await new Promise(resolve => setTimeout(() => {
console.warn('开始!');
resolve()
}, 1000));
// 读取数据文件
let workbook = XLSX.readFile(path.join(__dirname, './data/work.xlsx'));
let firstSheetName = workbook.SheetNames[0];
let worksheet = workbook.Sheets[firstSheetName];
let res = XLSX.utils.sheet_to_json(worksheet, {
defval: ''
});
for (let r of res) {
console.log(r);
let time = generateRandomTimeString()
console.log(time);
await client.query(
`INSERT INTO report (report_type, project_type, road, time,content,user_id) VALUES($1, $2, $3, $4, $5, $6) `,
['conserve', 'road', r['养护道路'], time, r['养护内容'], userId])
// break
}
// await client.query('ROLLBACK')
await client.query('COMMIT')
console.log('执行完毕~')
} catch (e) {
await client.query('ROLLBACK')
console.log('执行错误~')
throw e
} finally {
client.release();
}
}
fun()
} catch (error) {
console.error(error)
}