5 changed files with 169 additions and 0 deletions
			
			
		@ -0,0 +1,17 @@ | 
				
			|||
{ | 
				
			|||
    // 使用 IntelliSense 了解相关属性。  | 
				
			|||
    // 悬停以查看现有属性的描述。 | 
				
			|||
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 | 
				
			|||
    "version": "0.2.0", | 
				
			|||
    "configurations": [ | 
				
			|||
        { | 
				
			|||
            "type": "node", | 
				
			|||
            "request": "launch", | 
				
			|||
            "name": "启动程序", | 
				
			|||
            "skipFiles": [ | 
				
			|||
                "<node_internals>/**" | 
				
			|||
            ], | 
				
			|||
            "program": "${workspaceFolder}\\index.js" | 
				
			|||
        } | 
				
			|||
    ] | 
				
			|||
} | 
				
			|||
@ -0,0 +1,11 @@ | 
				
			|||
FROM repository.anxinyun.cn/base-images/nodejs12:20.10.12.2 | 
				
			|||
 | 
				
			|||
COPY . /var/app | 
				
			|||
 | 
				
			|||
WORKDIR /var/app | 
				
			|||
 | 
				
			|||
RUN npm cache clean -f | 
				
			|||
RUN rm -rf package-lock.json | 
				
			|||
RUN npm install --registry http://10.8.30.22:7000 | 
				
			|||
 | 
				
			|||
CMD ["node", "index.js"] | 
				
			|||
								
									Binary file not shown.
								
							
						
					@ -0,0 +1,124 @@ | 
				
			|||
try { | 
				
			|||
    const { Pool, Client } = require('pg') | 
				
			|||
    const XLSX = require('xlsx') | 
				
			|||
    const path = require('path') | 
				
			|||
    const fs = require("fs"); | 
				
			|||
 | 
				
			|||
    // 测试环境
 | 
				
			|||
    const pool = new Pool({ | 
				
			|||
        user: 'postgres', | 
				
			|||
        host: '10.8.30.32', | 
				
			|||
        database: 'highways4good', | 
				
			|||
        password: '123', | 
				
			|||
        port: 5432, | 
				
			|||
    }) | 
				
			|||
    const userId = 5 | 
				
			|||
 | 
				
			|||
    // 商用环境
 | 
				
			|||
    // 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) | 
				
			|||
} | 
				
			|||
@ -0,0 +1,17 @@ | 
				
			|||
{ | 
				
			|||
  "name": "appkey-generator", | 
				
			|||
  "version": "1.0.0", | 
				
			|||
  "description": "tool", | 
				
			|||
  "main": "index.js", | 
				
			|||
  "scripts": { | 
				
			|||
    "test": "mocha", | 
				
			|||
    "start": "set NODE_ENV=development&&node index" | 
				
			|||
  }, | 
				
			|||
  "author": "liu", | 
				
			|||
  "license": "ISC", | 
				
			|||
  "dependencies": { | 
				
			|||
    "crypto-js": "^4.1.1", | 
				
			|||
    "pg": "^7.18.2", | 
				
			|||
    "xlsx": "^0.17.1" | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
					Loading…
					
					
				
		Reference in new issue