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