| 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()
 
- }
 
 
  |