| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- /**
 
-  * Created by Mai on 2017/4/24.
 
-  */
 
- let billsData = require('../../main/models/bills');
 
- let projCounter = require('../../main/models/proj_counter_model');
 
- let projSetting = require('../../main/models/proj_setting_model');
 
- let async = require('async');
 
- const uuidV1 = require('uuid/v1');
 
- const mongoose = require('mongoose');
 
- let mainColLibModel = mongoose.model('std_main_col_lib');
 
- const billsUtil = require('../../../public/billsUtil');
 
- import BillsTemplateModel from "../models/templates/bills_template_model";
 
- import EngineeringLibModel from "../../users/models/engineering_lib_model";
 
- module.exports = {
 
-     copyTemplateData: async function (property, newProjID, callback) {
 
-         async.parallel([
 
-             async function (cb) {
 
-                 // 获取清单模板数据
 
-                 let billsTemplateModel = new BillsTemplateModel();
 
-                 let templateData = JSON.stringify(await billsTemplateModel.getTemplateDataForNewProj(property.templateLibID));
 
-                 let billsDatas = JSON.parse(templateData);
 
-                 let uuidMaping = Object.create(null);
 
-                 uuidMaping['-1'] = -1;
 
-                 //建立uuid-ID映射
 
-                 for(let bill of billsDatas){
 
-                     uuidMaping[bill.ID] = uuidV1();
 
-                 }
 
-                 const reg = /@\d+/;
 
-                 billsDatas.forEach(function (template) {
 
-                     template.projectID = newProjID;
 
-                     template.ID = uuidMaping[template.ID] ? uuidMaping[template.ID] : -1;
 
-                     template.ParentID = uuidMaping[template.ParentID] ? uuidMaping[template.ParentID] : -1;
 
-                     template.NextSiblingID = uuidMaping[template.NextSiblingID] ? uuidMaping[template.NextSiblingID] : -1;
 
-                     const needToParseCalcBase = template.calcBase && reg.test(template.calcBase);
 
-                     if (needToParseCalcBase) {
 
-                         template.calcBase = billsUtil.parseCalcBase(template.calcBase, uuidMaping);
 
-                     }
 
-                 });
 
-                 billsData.insertData(billsDatas, callback);
 
-             },
 
-             async function (cb) {
 
-                 let engineeringModel = new EngineeringLibModel();
 
-                 let engineering = await engineeringModel.getEngineering(property.engineering_id);
 
-                 let mainTreeCol = await mainColLibModel.findOne({'ID':property.colLibID});
 
-                 projSetting.insertData({"projectID": newProjID, main_tree_col: mainTreeCol.main_tree_col,glj_col:engineering.glj_col}, cb);
 
-             }
 
-         ], (err) => callback(err));
 
-     }
 
- };
 
 
  |