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