| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 'use strict';/** * * * @author Mai * @date * @version */const mysql = require('mysql');const config = process.argv.splice(2)[0];if (['local', 'uat', 'default'].indexOf(config) < 0) throw `参数错误: ${config}`;const options = require(`../config/config.${config}`)({ baseDir: __dirname + '/app', root: __dirname, name: 'calc' });const pool = mysql.createPool(options.mysql.client);const querySql = async function(sql, sqlParam) {    return new Promise(function(resolve, reject) {        pool.getConnection(function(err, conn) {            if (err) {                if (err) console.log(err);                reject(err);            } else {                conn.query(sql, sqlParam, function(err, rows, fields) {                    if (err) console.log(err);                    // 释放连接                    conn.release();                    // 传递Promise回调对象                    resolve(rows);                });            }        });    });};const doCompleteProject = async function(p) {    const fun_rela = p.fun_rela ? JSON.parse(p.fun_rela) : {};    fun_rela.minusNoValue = false;    await querySql(`Update zh_project Set fun_rela = '${JSON.stringify(fun_rela)}' Where id = ${p.id}`);};const doCompleteTender = async function(t) {    const info = await querySql('Select * From zh_tender_info Where tid = ?', [t.id]);    if (info.length > 0) {        const fun_rela = t.fun_rela ? JSON.parse(t.fun_rela) : {};        fun_rela.stage_chagne = { minusNoValue: false };        await querySql(`Update zh_tender_info Set fun_rela = '${JSON.stringify(fun_rela)}' Where tid = ${t.id}`);    } else {        const fun_rela = { stage_change: { minusNoValue: false } };        await querySql(`Insert Into zh_tender_info (pid, tid, fun_rela) Values(${t.project_id}, ${t.id}, '${JSON.stringify(fun_rela)}')`);    }};const doComplete = async function() {    try {        const project = await querySql('Select * From zh_project');        for (const p of project) {            await doCompleteProject(p);        }        const tenders = await querySql('Select * From zh_tender');        for (const t of tenders) {            await doCompleteTender(t);        }    } catch (err) {        console.log(err);    }    pool.end();};doComplete();
 |