| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 
							- 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.join(',')}) VALUES (${query.join(',')})`, value]
 
- };
 
- const syncBudget = async function(budget, order) {
 
-     try {
 
-         const subProject = {
 
-             id: uuid.v4(), project_id: budget.pid, tree_pid: '-1', tree_level: 1, tree_order: order,
 
-             name: budget.name, user_id: budget.user_id, rela_tender: budget.rela_tender,
 
-             is_folder: 0, budget_id: budget.id,
 
-         };
 
-         const [subProjSql, subProjSqlParam] = getInsertSql('zh_sub_project', subProject);
 
-         await querySql(subProjSql, subProjSqlParam);
 
-         const permission = await querySql('SELECT * FROM zh_budget_permission WHERE bid = ?', [budget.id]);
 
-         for (const p of permission) {
 
-             const np = {
 
-                 id: uuid.v4(), spid: subProject.id, pid: budget.pid, uid: p.uid,
 
-                 budget_permission: p.permission, manage_permission: '1'
 
-             };
 
-             const [pSql, pSqlParam] = getInsertSql('zh_sub_project_permission', np);
 
-             await querySql(pSql, pSqlParam);
 
-         }
 
-     } catch (err) {
 
-         console.log(err);
 
-     }
 
- };
 
- const doComplete = async function() {
 
-     try {
 
-         const project = await querySql('Select * From zh_project');
 
-         for (const p of project) {
 
-             console.log(`Update Project ${p.code}(${p.id}):`);
 
-             const budget = await querySql('SELECT * FROM zh_budget where pid = ?', [p.id]);
 
-             for (const [i, b] of budget.entries()) {
 
-                 console.log(`Sync Budget ${b.name}(${b.id})`);
 
-                 await syncBudget(b, i + 1);
 
-             }
 
-         }
 
-     } catch (err) {
 
-         console.log(err);
 
-     }
 
-     BaseUtil.closePool();
 
- };
 
- const doCompleteTest = async function(code) {
 
-     try {
 
-         const project = await querySql('Select * From zh_project where code = ?', [code]);
 
-         for (const p of project) {
 
-             console.log(`Update Project ${p.code}(${p.id}):`);
 
-             const budget = await querySql('SELECT * FROM zh_budget where pid = ?', [p.id]);
 
-             for (const [i, b] of budget.entries()) {
 
-                 console.log(`Sync Budget ${b.name}(${b.id})`);
 
-                 await syncBudget(b, i + 1);
 
-             }
 
-         }
 
-     } catch (err) {
 
-         console.log(err);
 
-     }
 
-     BaseUtil.closePool();
 
- };
 
- const projectCode = process.argv[3];
 
- if (projectCode) {
 
-     doCompleteTest(projectCode);
 
- } else {
 
-     doComplete()
 
- }
 
 
  |