| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | // 计算变更令,正负变更数const defaultInfo = require('../app/const/tender_info');const BaseUtil = require('./baseUtils');const status = require('../app/const/audit').change.status;const querySql = BaseUtil.querySql;const ZhCalc = BaseUtil.ZhCalc;const checkChange = async function(change, decimal) {    const changeBills = await querySql('Select * From zh_change_audit_list where cid = ?', [change.cid]);    for (const cb of changeBills) {        cb.checked_amount = cb.checked_amount ? cb.checked_amount : 0;        cb.checked_price = ZhCalc.mul(cb.checked_amount, cb.unit_price, change.tp_decimal || decimal.tp);        await querySql('Update zh_change_audit_list Set checked_price = ?, checked_amount = ? Where id = ?', [cb.checked_price, cb.checked_amount, cb.id]);    }    console.log(`Update Change ${change.cid}`);};const doComplete = async function() {    try {        const tender = await querySql('Select * From zh_tender');        for (const t of tender) {            console.log(`Update Tender ${t.id}:`);            const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);            const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;            const changes = await querySql('Select * From zh_change where tid = ? AND status = ?', [t.id, status.checked]);            for (const c of changes) {                await checkChange(c, decimal);            }        }    } catch (err) {        console.log(err);    }    BaseUtil.closePool();};const doCompleteTest = async function(tid) {    try {        const tender = await querySql('Select * From zh_tender where id = ?', [tid]);        for (const t of tender) {            console.log(`Update Tender ${t.id}:`);            const info = await querySql('Select * From zh_tender_info where tid = ?', [t.id]);            const decimal = info.length > 0 && info[0].decimal ? JSON.parse(info[0].decimal) : defaultInfo.defaultInfo.decimal;            const changes = await querySql('Select * From zh_change where tid = ?', [t.id]);            for (const c of changes) {                await checkChange(c, decimal);            }        }    } catch (err) {        console.log(err);    }    BaseUtil.closePool();};const tenderId = process.argv[3];if (tenderId) {    doCompleteTest(tenderId);} else {    doComplete()}
 |