|
@@ -9,6 +9,7 @@ let gljUtil = {
|
|
|
let mixRatioMap = projectGLJDatas.mixRatioMap;
|
|
|
let rations = rationDatas;
|
|
|
let rationMap = _.indexBy(rations,'ID');
|
|
|
+ let billsMap = _.indexBy(billsDatas,'ID');
|
|
|
let quantityMap={};
|
|
|
let rationGljGroup = _.groupBy(rationGLJDatas,'projectGLJID');
|
|
|
let IDarray = this.getSubdivisionAndTechBillsLeavesID(billsDatas);//分别取分部分项和技术措施项目的所有叶子清单ID
|
|
@@ -23,7 +24,7 @@ let gljUtil = {
|
|
|
pglj[tField] = 0;
|
|
|
pglj[qField] = 0;
|
|
|
let gljGroup = rationGljGroup[pglj.id]?rationGljGroup[pglj.id]:[];//定额工料机没有,有可能是定额类型的工料机
|
|
|
- let result = this.getQuantityPerGLJ(gljGroup,rations,rationMap,pglj,billIDs,tech_billIDS,q_decimal,_,scMathUtil);
|
|
|
+ let result = this.getQuantityPerGLJ(gljGroup,rations,rationMap,pglj,billIDs,tech_billIDS,billsMap,q_decimal,_,scMathUtil);
|
|
|
pglj[sField] = result.subdivisionQuantity;
|
|
|
pglj[tField] = result.techQuantity;
|
|
|
pglj[qField] = result.quantity;
|
|
@@ -56,7 +57,7 @@ let gljUtil = {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- getQuantityPerGLJ : function (ration_glj_list,rations,rationMap,pglj,billIDs,tech_billIDS,q_decimal,_,scMathUtil) {
|
|
|
+ getQuantityPerGLJ : function (ration_glj_list,rations,rationMap,pglj,billIDs,tech_billIDS,billsMap,q_decimal,_,scMathUtil) {
|
|
|
let result={};
|
|
|
let quantity_sum=0;//工料机汇总消耗量
|
|
|
let sum = 0;//分部分项总消耗量
|
|
@@ -64,6 +65,9 @@ let gljUtil = {
|
|
|
let tender_qantity_sum = 0;
|
|
|
for(let rg of ration_glj_list){
|
|
|
let tem_ration = rationMap[rg.rationID];
|
|
|
+ if(tem_ration){
|
|
|
+ if(!billsMap[tem_ration.billsItemID]) continue;//如果定额工料的父项没有找到,则忽略
|
|
|
+ }
|
|
|
let r_quantity = tem_ration?scMathUtil.roundForObj(tem_ration.quantity,q_decimal):0;
|
|
|
let glj_quantity = scMathUtil.roundForObj(rg.quantity, q_decimal);
|
|
|
let tender_r_quantity = r_quantity;
|
|
@@ -88,6 +92,7 @@ let gljUtil = {
|
|
|
}
|
|
|
//2019-11-07 定额类型工料机已经屏蔽,如果打开,记得加上调价后的消耗量
|
|
|
for(let ra of rations){//计算定额类型工料机的消耗量
|
|
|
+ if(!billsMap[ra.billsItemID]) continue;//如果定额工料的父项没有找到,则忽略
|
|
|
if(ra.type == this.rationType.gljRation&&ra.projectGLJID===pglj.id){
|
|
|
let r_quantity = scMathUtil.roundForObj(ra.quantity,q_decimal);
|
|
|
r_quantity = r_quantity?r_quantity:0;
|