|
@@ -0,0 +1,89 @@
|
|
|
+
|
|
|
+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()
|
|
|
+}
|