zhangweicheng 5 år sedan
förälder
incheckning
ea8a65d829

+ 0 - 9
modules/main/controllers/project_controller.js

@@ -98,15 +98,6 @@ module.exports = {
         res.json(result);
     },
     updateNodes:async function (req,res) {
-    /*    var data = JSON.parse(req.body.data);
-        project_facade.updateNodes(data, function (err, message, result) {
-            if (err) {
-                logger.err(err);
-                callback(req, res, err, message, null);
-            } else {
-                callback(req, res, err, message, result);
-            }
-        });*/
         let result={
             error:0
         }

+ 20 - 3
modules/main/facade/project_facade.js

@@ -48,8 +48,8 @@ const billsLibDao = require("../../bills_lib/models/bills_lib_interfaces");
 async function calcInstallationFee(data) {
     let result={};
     let projectGLJList = [];
-    let billTasks  = generateTasks(data.bills,data.useID);
-    let rationTasks = generateTasks(data.ration,data.useID);
+    let billTasks  = await generateTasks(data.bills,data.useID,true);
+    let rationTasks =await generateTasks(data.ration,data.useID);
     if(billTasks.length>0){
         await bill_model.model.bulkWrite(billTasks);
     }
@@ -104,6 +104,7 @@ async function calcInstallationFee(data) {
     result.update = updateList;
     result.add = newGljList;
     result.projectGLJList = projectGLJList;
+    result.updateData = data;
     return result;
 }
 
@@ -118,7 +119,7 @@ async function createRationGLJData(glj) {
 
 
 
-function generateTasks(data,userID) {
+async function generateTasks(data,userID,isBills=false) {
     let tasks=[];
     let deleteInfo={deleted: true, deleteDateTime: new Date(), deleteBy: userID};
     if(data.delete && data.delete.length > 0){
@@ -148,6 +149,22 @@ function generateTasks(data,userID) {
     }
     if(data.add && data.add.length > 0){
         for(let n_data of data.add){
+          if(isBills == true){
+            let stdBills = await billsLibDao.getStdBillsByCode({userId: n_data.userID, billsLibId: n_data.billsLibId, code: n_data.stdCode});
+            stdBills = stdBills ? stdBills._doc : null;
+            if (stdBills) {
+                // 获取项目清单所需要的数据
+                const projectBillsData = billsLibDao.getDataToProjectBills(stdBills);
+                n_data.jobContent = projectBillsData.jobContent;
+                n_data.itemCharacter = projectBillsData.itemCharacter;
+                n_data.itemCharacterText = projectBillsData.itemCharacterText;
+                n_data.jobContentText = projectBillsData.ijobContentText;
+            } else {
+                delete n_data.billsLibId;
+            }
+            delete n_data.userID;
+            delete n_data.stdCode;
+          }
             let task = {
                 insertOne :{
                     document:n_data

+ 3 - 0
web/building_saas/main/js/models/bills.js

@@ -987,6 +987,9 @@ var Bills = {
                 code : this.newFormatCode(code),
                 name:'安装增加费',
                 unit:'元',
+                stdCode:code,
+                userID:userID,
+                billsLibId:projectObj.project.projectInfo.engineeringInfo.bill_lib[0].id,
                 quantity:'1'
             };
             return data;

+ 1 - 0
web/building_saas/main/js/models/installation_fee.js

@@ -318,6 +318,7 @@ var installation_fee = {
                 $.bootstrapLoading.start();
                 CommonAjax.post("/project/calcInstallationFee",updateData,function (data) {
                     //提交后台成功后所做的操作,删除要先删除定额,再删除清单,添加要先添加清单再添加定额
+                    updateData = data.updateData;
                     project.ration_glj.addDatasToList(data.add);//添加插入的定额
                     let calRations = [];
                     for(let ur of data.update){