|
@@ -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
|