Browse Source

jenkinsfile、数据脚本

release_0.0.1
巴林闲侠 3 years ago
parent
commit
42e87e1b95
  1. 2
      api/app/lib/models/bridge.js
  2. 2
      api/app/lib/models/report.js
  3. 19
      api/jenkinsfile
  4. 2
      scripts/0.0.1/data/2_update_statistic_data.sql
  5. 17
      scripts/0.0.1/data/3_init_report_pic_data/.vscode/launch.json
  6. BIN
      scripts/0.0.1/data/3_init_report_pic_data/data/养护内容.xlsx
  7. 124
      scripts/0.0.1/data/3_init_report_pic_data/index.js
  8. 19
      scripts/0.0.1/data/3_init_report_pic_data/package.json
  9. 46
      scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js
  10. 4
      scripts/0.0.1/data/工具脚本(无需执行)/桥梁_数据脚本对应.sql
  11. 56597
      scripts/0.0.1/schema/1.init_table.sql
  12. 19
      web/jenkinsfile

2
api/app/lib/models/bridge.js

@ -579,7 +579,7 @@ module.exports = dc => {
defaultValue: null, defaultValue: null,
comment: "工程性质", comment: "工程性质",
primaryKey: false, primaryKey: false,
field: "engineering_properties_", field: "engineering_properties",
autoIncrement: false autoIncrement: false
}, },
reconstructionPart: { reconstructionPart: {

2
api/app/lib/models/report.js

@ -125,7 +125,7 @@ module.exports = dc => {
}, },
userId: { userId: {
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
allowNull: false, allowNull: true,
defaultValue: null, defaultValue: null,
comment: null, comment: null,
primaryKey: false, primaryKey: false,

19
api/jenkinsfile

@ -0,0 +1,19 @@
pipeline {
agent {
node{
label 'jnlp-slave'
}
}
stages {
stage('Highways4Good Api ......') {
steps {
sh 'switch-auth.sh anxinyun'
buildName "#${BUILD_NUMBER} ~/fs-cloud/${JOB_NAME}:${IMAGE_VERSION}"
buildDescription "registry.cn-hangzhou.aliyuncs.com/${CLOUD}/${JOB_NAME}:${IMAGE_VERSION}"
sh 'docker build -t registry.cn-hangzhou.aliyuncs.com/${CLOUD}/${JOB_NAME}:${IMAGE_VERSION} ./'
sh 'docker push registry.cn-hangzhou.aliyuncs.com/${CLOUD}/${JOB_NAME}:${IMAGE_VERSION}'
}
}
}
}

2
scripts/0.0.1/data/1_update_statistic_data.sql → scripts/0.0.1/data/2_update_statistic_data.sql

@ -5,5 +5,5 @@ INSERT INTO statistic (name, count, type) values ('标志牌', 0, 'road_manage')
INSERT INTO statistic (name, count, type) values ('防护栏', 0, 'road_manage'); INSERT INTO statistic (name, count, type) values ('防护栏', 0, 'road_manage');
INSERT INTO statistic (name, count, type) values ('检查井', 0, 'road_manage'); INSERT INTO statistic (name, count, type) values ('检查井', 0, 'road_manage');
INSERT INTO statistic (name, count, type) values ('雨水口', 0, 'road_manage'); INSERT INTO statistic (name, count, type) values ('雨水口', 0, 'road_manage');
INSERT INTO statistic (name, count, type) values ('', 0, 'road_manage'); INSERT INTO statistic (name, count, type) values ('', 0, 'road_manage');
INSERT INTO statistic (name, count, type) values ('养护责任牌', 0, 'road_manage'); INSERT INTO statistic (name, count, type) values ('养护责任牌', 0, 'road_manage');

17
scripts/0.0.1/data/3_init_report_pic_data/.vscode/launch.json

@ -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"
}
]
}

BIN
scripts/0.0.1/data/3_init_report_pic_data/data/养护内容.xlsx

Binary file not shown.

124
scripts/0.0.1/data/3_init_report_pic_data/index.js

@ -0,0 +1,124 @@
try {
const { Pool, Client } = require('pg')
const request = require('superagent');
const Hex = require('crypto-js/enc-hex');
const MD5 = require('crypto-js/md5');
const XLSX = require('xlsx')
const path = require('path')
const fs = require("fs");
const qiniu = require('qiniu');
// 连接数据库
const pool = new Pool({
user: 'postgres',
host: '10.8.30.32',
database: 'highways4good',
password: '123',
port: 5432,
})
// 7niu 验证
const accessKey = 'XuDgkao6cL0HidoMAPnA5OB10Mc_Ew08mpIfRJK5'
const secretKey = 'yewcieZLzKZuDfig0wLZ9if9jKp2P_1jd3CMJPSa'
const bucket = 'dev-highways4good'
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(`开始`);
const upload7niu =
async (filePath, filename) => {
return new Promise((resolve, reject) => {
try {
// 7niu 鉴权
const mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
const config = {
scope: bucket,
// expires: 3600,
returnBody: '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}'
}
var putPolicy = new qiniu.rs.PutPolicy(config);
var uploadToken = putPolicy.uploadToken(mac);
// 上传文件
var formUploader = new qiniu.form_up.FormUploader(config);
var putExtra = new qiniu.form_up.PutExtra();
let key = path.posix.join(uploadPath, uuidv4(), filename);
formUploader.putFile(uploadToken, key, localFile, putExtra, function (respErr,
respBody, respInfo) {
if (respErr) {
reject(respErr);
throw respErr;
}
if (respInfo.statusCode == 200) {
console.log(respBody);
let qnkey = respBody.key;
resolve({ key: qnkey, url: `${domain}/${qnkey}` });
} else {
console.log(respInfo.statusCode);
console.log(respBody);
reject(new Error('failed to upload.'));
}
});
} catch (err) {
reject(err);
}
});
}
// 读取数据文件
let workbook = XLSX.readFile(path.join(__dirname, './data/养护内容.xlsx'));
let firstSheetName = workbook.SheetNames[0];
let worksheet = workbook.Sheets[firstSheetName];
let res = XLSX.utils.sheet_to_json(worksheet, {
defval: ''
});
// console.log(res);
res.sort((a, b) => { return Date.parse(a['时间']) - Date.parse(b['时间']) });
// 读取全部图片
let pic = [];
fs.readdirSync(path.join(__dirname, '/data/图片')).forEach((filename) => {
pic.push({
path: `./data/运政/车辆/出租车/${filename}`,
name: filename
})
});
for (let r of res) {
console.log(r);
let picList = pic.filter(p => {
const { name } = p
const no = name.split('-')[0]
return no == r['编号']
})
console.log(picList);
// 将图片上传至 7niu
for (let p of picList) {
await upload7niu(path.join(__dirname, p.path), p.name)
}
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)
}

19
scripts/0.0.1/data/3_init_report_pic_data/package.json

@ -0,0 +1,19 @@
{
"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",
"qiniu": "^7.7.0",
"superagent": "^8.0.0",
"xlsx": "^0.17.1"
}
}

46
scripts/0.0.1/data/工具脚本(无需执行)/dataIn.js

@ -12,6 +12,7 @@ try {
user: 'postgres', user: 'postgres',
host: '10.8.30.32', host: '10.8.30.32',
database: 'highways4good', database: 'highways4good',
// database: 'highways4good_initdata',
password: '123', password: '123',
port: 5432, port: 5432,
}) })
@ -46,6 +47,11 @@ try {
// defaultValue: ['乡'], // defaultValue: ['乡'],
// }, // },
// { // {
// path: ['./data/桥梁/桥第三方.xls'],
// n: '桥梁',
// tableName: 'bridge'
// },
// {
// path: (() => { // path: (() => {
// let p = []; // let p = [];
// fs.readdirSync(path.join(__dirname, '/data/运政/车辆/出租车')).forEach((filename) => { // fs.readdirSync(path.join(__dirname, '/data/运政/车辆/出租车')).forEach((filename) => {
@ -71,26 +77,26 @@ try {
// defaultKey: ['type'], // defaultKey: ['type'],
// defaultValue: ['危货'], // defaultValue: ['危货'],
// }, // },
{ // {
path: ['./data/运政/业户/出租车/事业发展中心巡游出租业户信息表.xlsx'], // path: ['./data/运政/业户/出租车/事业发展中心巡游出租业户信息表.xlsx'],
n: '运政业户', // n: '运政业户',
tableName: 'municipal_business', // tableName: 'municipal_business',
defaultKey: ['type'], // defaultKey: ['type'],
defaultValue: ['出租车'], // defaultValue: ['出租车'],
}, // },
{ // {
path: (() => { // path: (() => {
let p = []; // let p = [];
fs.readdirSync(path.join(__dirname, '/data/运政/业户/危货')).forEach((filename) => { // fs.readdirSync(path.join(__dirname, '/data/运政/业户/危货')).forEach((filename) => {
p.push(`./data/运政/业户/危货/${filename}`) // p.push(`./data/运政/业户/危货/${filename}`)
}); // });
return p; // return p;
})(), // })(),
n: '运政业户', // n: '运政业户',
tableName: 'municipal_business', // tableName: 'municipal_business',
defaultKey: ['type'], // defaultKey: ['type'],
defaultValue: ['危货'], // defaultValue: ['危货'],
}, // },
// { // {
// path: ['./data/工程一览/道路.xls'], // path: ['./data/工程一览/道路.xls'],
// n: '工程一览', // n: '工程一览',

4
scripts/0.0.1/data/工具脚本(无需执行)/桥梁_数据脚本对应.sql

@ -65,8 +65,8 @@ ON column bridge.Nature_Of_Management_And_Maintenance_Unit is '管养单位性
ON column bridge.Management_And_Maintenance_Unit is '管养单位'; alter TABLE bridge add Supervision_Unit varchar(1024); comment ON column bridge.Management_And_Maintenance_Unit is '管养单位'; alter TABLE bridge add Supervision_Unit varchar(1024); comment
ON column bridge.Supervision_Unit is '监管单位'; alter TABLE bridge add Reconstruction_Construction_Unit varchar(1024); comment ON column bridge.Supervision_Unit is '监管单位'; alter TABLE bridge add Reconstruction_Construction_Unit varchar(1024); comment
ON column bridge.Reconstruction_Construction_Unit is '改造施工单位'; alter TABLE bridge add Whether_It_Is_A_Subsidy_Project_Of_The_Ministry varchar(1024); comment ON column bridge.Reconstruction_Construction_Unit is '改造施工单位'; alter TABLE bridge add Whether_It_Is_A_Subsidy_Project_Of_The_Ministry varchar(1024); comment
ON column bridge.Whether_It_Is_A_Subsidy_Project_Of_The_Ministry is '是否部补助项目'; alter TABLE bridge add Engineering_Properties_ varchar(1024); comment ON column bridge.Whether_It_Is_A_Subsidy_Project_Of_The_Ministry is '是否部补助项目'; alter TABLE bridge add Engineering_Properties varchar(1024); comment
ON column bridge.Engineering_Properties_ is '工程性质'; alter TABLE bridge add Reconstruction_Part varchar(1024); comment ON column bridge.Engineering_Properties is '工程性质'; alter TABLE bridge add Reconstruction_Part varchar(1024); comment
ON column bridge.Reconstruction_Part is '改造部位'; alter TABLE bridge add Modification_Completion_Date varchar(1024); comment ON column bridge.Reconstruction_Part is '改造部位'; alter TABLE bridge add Modification_Completion_Date varchar(1024); comment
ON column bridge.Modification_Completion_Date is '改造完工日期'; alter TABLE bridge add Year_1 varchar(1024); comment ON column bridge.Modification_Completion_Date is '改造完工日期'; alter TABLE bridge add Year_1 varchar(1024); comment
ON column bridge.Year_1 is '年份1'; alter TABLE bridge add Span_Combination_1 varchar(1024); comment ON column bridge.Year_1 is '年份1'; alter TABLE bridge add Span_Combination_1 varchar(1024); comment

56597
scripts/0.0.1/schema/1.init_table.sql

File diff suppressed because it is too large

19
web/jenkinsfile

@ -0,0 +1,19 @@
pipeline {
agent {
node{
label 'jnlp-slave'
}
}
stages {
stage('Highways4Good Web......') {
steps {
sh 'switch-auth.sh anxinyun'
buildName "#${BUILD_NUMBER} ~/fs-cloud/${JOB_NAME}:${IMAGE_VERSION}"
buildDescription "registry.cn-hangzhou.aliyuncs.com/${CLOUD}/${JOB_NAME}:${IMAGE_VERSION}"
sh 'docker build -t registry.cn-hangzhou.aliyuncs.com/${CLOUD}/${JOB_NAME}:${IMAGE_VERSION} ./'
sh 'docker push registry.cn-hangzhou.aliyuncs.com/${CLOUD}/${JOB_NAME}:${IMAGE_VERSION}'
}
}
}
}
Loading…
Cancel
Save