/** * Created by chen on 2017/7/12. */ let mongoose = require('mongoose'); let _=require("lodash"); let ration_glj = mongoose.model('ration_glj'); let ration = mongoose.model('ration'); let ration_coe = mongoose.model('ration_coe'); let std_ration_lib_ration_items = mongoose.model('std_ration_lib_ration_items'); let std_glj_lib_gljList_model = mongoose.model('std_glj_lib_gljList'); let glj_type_util = require('../../../public/cache/std_glj_type_util'); const scMathUtil = require('../../../public/scMathUtil').getUtil(); let decimal_facade = require('../../main/facade/decimal_facade'); let gljUtil = require('../../../public/gljUtil'); module.exports={ calculateQuantity:calculateQuantity, getGLJTypeByID:getGLJTypeByID } //辅助定额调整、替换工料机、标准附注条件调整、添加工料机、自定义消耗量(包括删除工料机)、自定义乘系数、市场单价调整 let stateSeq ={ ass:1, replace:2, coe:3, add:4, cusQuantity:5, cusCoe:6, adjMak:7 }; //自定义乘系数与定额工料机类型映射表 let coeTypeMap = { "人工":1, "材料":2, "机械":3, "施工机具":3, "主材":4, "设备":5 }; async function calculateQuantity(query,noNeedCal,refreshRationName = false){ try { let result ={ glj_result:[], rationID:query.rationID }; let impactRation = await ration.findOne({ID:query.rationID,projectID:query.projectID}); let gljList = await ration_glj.find(query);//{projectID:query.projectID,rationID:query.rationID} let coeList = await ration_coe.find({projectID:query.projectID,rationID:query.rationID}).sort('seq').exec(); let assList=[]; let assRation = null; let adjustState=[]; if(!impactRation){//如果定额不存在或者已删除,返回空 return null; } if(impactRation._doc.hasOwnProperty("rationAssList")&&impactRation.rationAssList.length>0){ for(let i=0;i 0){ let ass = ration.rationAssList[0]; if(ass.actualValue != null && ass.actualValue != undefined ){ caption = caption.replace('%s',ass.actualValue); } } let reNameList = []; for(let g of gljList){ //glj._doc.createType=='replace'&&glj.rcode!=glj.code if(g.createType=='replace'&&g.rcode!=g.code){ //是替换工料机 let reName = g.name; if(!_.isEmpty(g.specs)) reName = reName + ' '+g.specs; reNameList.push(reName); } } if(reNameList.length > 0){ let reNameString = reNameList.join(" "); caption = caption + " 换为【"+ reNameString + "】"; } return caption; } function generateUpdateTasks(result) { let tasks = []; for(let i =0;i1){ for(let i=0;i