瀏覽代碼

导入重庆测评项目

zhangweicheng 5 年之前
父節點
當前提交
a557d5e22c

+ 4 - 0
modules/import/controllers/import_controller.js

@@ -13,6 +13,10 @@ let controller = {
         let data = req.body;
         return await pm_facade.downLoadProjectFile(data);
     },
+    importChongqingProject:async function(req){
+        let data = req.body;
+        return await pm_facade.importChongqingProject(data);
+    },
     exportProject:async function(req){
         let result={
             error:0

+ 1 - 0
modules/import/routes/import_route.js

@@ -12,6 +12,7 @@ module.exports = function (app) {
     importRouter.post('/importInterface',importController.action);
     importRouter.post('/getDataForInterface',importController.action);
     importRouter.post('/loadSEIProjectData',importController.action);
+    importRouter.post('/importChongqingProject',importController.action);
     importRouter.get('/test',function (req,res) {
         res.json("hello word");
     })

+ 15 - 0
modules/pm/controllers/pm_controller.js

@@ -813,6 +813,21 @@ module.exports = {
         }
         res.json(result);
     },
+    importChongqingProject:async function(req,res){
+        let data = JSON.parse(req.body.data);
+        let result={
+            error:0
+        };
+        try {
+            data.session = req.session;
+            result = await redirectToImportServer(data,"importChongqingProject",req);
+        }catch (err){
+            console.log(err);
+            result.error=1;
+            result.message = err.message;
+        }
+        res.json(result);
+    },
     importProcessChecking:async function (req,res) {
         let result={
             error:0

+ 34 - 0
modules/pm/facade/pm_facade.js

@@ -42,6 +42,7 @@ module.exports={
     initOverHeightItems: initOverHeightItems,
     uploadToken:uploadToken,
     downLoadProjectFile:downLoadProjectFile,
+    importChongqingProject:importChongqingProject,
     importProcessChecking:importProcessChecking,
     importInterface,
     isTenderOverrun,
@@ -1267,6 +1268,39 @@ async function isFirst(userId, compilationId) {
     return first;
 }
 
+async function importChongqingProject(data) {
+
+    let log_data = {
+        key:data.key,
+        userID:data.user_id,
+        status:"start",
+        create_time:+new Date()
+    };
+    await importLogsModel.create(log_data);
+    doImport(data.user_id,data.session.sessionCompilation._id,[13945,13952,13955],data.key);
+
+     return "start importing";
+
+    async function doImport(user_id,compilationId,projectIDs,key) {
+        let doc = {status:"finish"};
+        try {
+           let r = await copyExample(user_id,compilationId,projectIDs);
+           if(r == false){
+               doc.errorMsg = "导入失败,请检查项目是否存在!";
+               doc.status = "error";
+           }
+        }catch (error){
+            console.log(error);
+            doc.errorMsg = "导入失败,请检查项目是否存在!";
+            doc.status = "error";
+        }finally {
+            await importLogsModel.update({key:key},doc);
+        }
+    }
+}
+
+
+
 //用户第一次进入费用定额的数据准备
 async function prepareInitialData(userId, compilation, example) {
     let first = await isFirst(userId, compilation);

+ 1 - 0
modules/pm/routes/pm_route.js

@@ -65,6 +65,7 @@ module.exports = function (app) {
     pmRouter.post('/changeFile', pmController.changeFile);
     pmRouter.post('/exportProject', pmController.exportProject);
     pmRouter.post('/importProject', pmController.importProject);
+    pmRouter.post('/importChongqingProject', pmController.importChongqingProject);
     pmRouter.post('/importProcessChecking', pmController.importProcessChecking);
     pmRouter.post('/getBasicInfo', pmController.getBasicInfo);
     pmRouter.post('/getProjectFeature', pmController.getProjectFeature);

+ 45 - 22
web/building_saas/pm/js/pm_newMain.js

@@ -4829,34 +4829,14 @@ $("#confirm-import").click(function() {
 
     async function  startImportProject(key) {
         try {
-            console.log("start Import");
             let result = await ajaxPost("/pm/api/importProject",{key:key,updateData:projTreeObj.getImportProjectDate()});
-            setTimeout(importProcessChecking,2000);
+            importProcessChecking(key);
         }catch (error){
             alert(error);
-            $.bootstrapLoading.end();
         }finally {
             STATE.importing = false;
         }
     }
-
-    async function importProcessChecking() {
-        let result = await ajaxPost("/pm/api/importProcessChecking",{key:key,user_id:userID});
-        if(result.error == 1){
-            let message = result.msg?result.msg:result.message;
-            setTimeout(function () {
-                $.bootstrapLoading.progressEnd();//不做这个的话太快,页面不会自动关闭
-            },500);
-            alert(message)
-        }else if(result.error == 0){
-            if(result.status == "processing"){
-                setTimeout(importProcessChecking,2000);
-            }else if(result.status == "complete"){
-                $.bootstrapLoading.progressEnd();
-                refreshAllPage();
-            }
-        }
-    }
 });
 
 $("#import_project_data").change(function(){
@@ -5040,6 +5020,49 @@ function refreshProjSummary(project, summaryInfo) {
     projTreeObj.refreshNodeData(refreshNodes);
 }
 
+
+
 $(function () {
     if(isShow)  $('#welcomePage').modal('show');//是否显示欢迎页
-});
+    $('#importChongqing').click(async function () {
+        if (STATE.importing) {
+            return;
+        }
+        STATE.importing = true;
+        $('#welcomePage').modal('hide');
+        try {
+            let key = uuid.v1();
+            $.bootstrapLoading.progressStart("欢迎使用大司空云计价",true);
+            $("#progress_modal_body").text("正在导入测评项目,请稍候……");
+            let result = await ajaxPost("/pm/api/importChongqingProject",{user_id: userID,key:key});
+            importProcessChecking(key);
+        }catch (error){
+            alert(error);
+        }finally {
+            STATE.importing = false;
+        }
+    })
+});
+
+async function importProcessChecking(key) {
+    setTimeout(checking,2000)
+    async function checking() {
+        let result = await ajaxPost("/pm/api/importProcessChecking",{key:key,user_id:userID});
+        if(result.error == 1){
+            let message = result.msg?result.msg:result.message;
+            setTimeout(function () {
+                $.bootstrapLoading.progressEnd();//不做这个的话太快,页面不会自动关闭
+            },500);
+            alert(message)
+        }else if(result.error == 0){
+            if(result.status == "processing"){
+                setTimeout(checking,2000);
+            }else if(result.status == "complete"){
+                $.bootstrapLoading.progressEnd();
+                refreshAllPage();
+            }
+        }
+    }
+
+
+}