| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | 
const BaseUtil = require('./baseUtils');const querySql = BaseUtil.querySql;const uuid = require('node-uuid');const getInsertSql = function (tableName, data) {    const column = [], query = [], value = [];    for (const prop in data) {        column.push(prop);        query.push('?');        value.push(data[prop]);    }    return [`INSERT INTO ${tableName} (${column.map(c => { return '`' + c + '`'}).join(',')}) VALUES (${query.join(',')})`, value]};const initBudgetZb = async function(budget) {    let budgetStd = await querySql('SELECT * From zh_budget_std where id = ?', [budget.std_id]);    budgetStd = budgetStd[0];    if (!budgetStd) {        console.log(`【Error】Budget-${budget.name}(${budget.id}): 未定义概预算标准`);        return;    }    if (!budgetStd.zb_template_id) {        console.log(`【Error】概预算标准-${budgetStd.name}: 招标预算模板未定义`);        return;    }    const template = await querySql('SELECT * FROM zh_bills_template WHERE list_id = ?', [budgetStd.zb_template_id]);    for (const tmp of template) {        const initB = {            id: uuid.v4(),            bid: budget.id,            tree_id: tmp.template_id,            tree_pid: tmp.pid,            level: tmp.level,            order: tmp.order,            full_path: tmp.full_path,            is_leaf: tmp.is_leaf,            code: tmp.code,            name: tmp.name,            unit: tmp.unit,            node_type: tmp.node_type,        };        const [initSql, initSqlParam] = getInsertSql('zh_budget_zb', initB);        await querySql(initSql, initSqlParam);    }};const checkBudgetZb = async function(budget) {    const data = await querySql('SELECT * From zh_budget_zb where bid = ?', [budget.id]);    if (data.length > 0) {        console.log(`Exit Budget ${budget.name}(${budget.id}):`);        return;    }    await initBudgetZb(budget);    console.log(`Done Budget ${budget.name}(${budget.id}):`);};const doComplete = async function() {    try {        const budget = await querySql('Select * From zh_budget');        for (const b of budget) {            console.log(`Update Budget ${b.name}(${b.id}):`);            await checkBudgetZb(b);        }    } catch (err) {        console.log(err);    }    BaseUtil.closePool();};const doCompleteTest = async function(tid) {    try {        const budget = await querySql('Select * From zh_budget where id = ?', [tid]);        for (const b of budget) {            console.log(`Update Budget ${b.name}(${b.id}):`);            await checkBudgetZb(b);        }    } catch (err) {        console.log(err);    }    BaseUtil.closePool();};const tenderId = process.argv[3];if (tenderId) {    doCompleteTest(tenderId);} else {    doComplete()}
 |