| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 'use strict';/** * * * @author Mai * @date * @version */const audit = require('../app/const/audit');const mysql = require('mysql');const config = process.argv[2];console.log(config);const mysqlOptions = require(`../config/config.${config}`)({ baseDir: __dirname + '/app', root: __dirname, name: 'calc' }).mysql;console.log(mysqlOptions);const pool = mysql.createPool(mysqlOptions.client);const querySql = async function (sql, sqlParam) {    return new Promise(function (resolve, reject) {        pool.getConnection(function (err, conn) {            if (err) {                reject(err);            } else {                conn.query(sql, sqlParam, function (err, rows, fields) {                    //释放连接                    conn.release();                    //传递Promise回调对象                    resolve({"err": err, "rows": rows, "fields": fields});                });            }        });    });};const doComplete = async function () {    try {        const tenders = await querySql('Select * From zh_tender where ledger_status = ?', [audit.ledger.status.checked]);        for (const t of tenders.rows) {            const stages = await querySql('Select * From zh_stage where tid = ?', [t.id]);            for (const s of stages.rows) {                console.log('处理标段: ' + t.name + ' 期: ' + s.order);                const auditors = await querySql('Select * From zh_stage_audit where sid = ? and times = ? order by `order`', [s.id, s.times ? s.times : 1]);                const curAuditor = auditors.rows.find(x => { return x.status === audit.stage.status.checking});                const order = curAuditor ? curAuditor.order : (auditors.rows.length > 0 ? auditors.rows.length : 0);                const latestStagePay = await querySql('Select * From zh_stage_pay where sid = ? and stimes = ? and sorder = ?', [s.id, s.times ? s.times : 1, order]);                const insertData = [];                for (const lsp of latestStagePay.rows) {                    if (!lsp.attachment) continue;                    const attachment = JSON.parse(lsp.attachment);                    for (const a of attachment) {                        insertData.unshift([t.id, s.id, lsp.pid, a.uid, a.filename, a.fileext, a.filesize, a.filepath, a.in_time, a.username || '']);                    }                }                const result = await querySql('Insert Into zh_pay_attachment (tid, sid, pid, uid, filename, fileext, filesize, filepath, in_time, username ) Values ?', [insertData]);            }        }        await querySql("Update zh_pay_attachment att Left Join zh_project_account acc On att.uid = acc.id Set att.username = acc.name Where att.username = ''");        pool.end();    } catch(err) {        console.log(err);    }};doComplete();
 |