|
|
@@ -10,6 +10,7 @@ let gljUtil = {
|
|
|
com_electrovalence = projectGLJDatas.com_electrovalence;
|
|
|
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
|
|
|
@@ -29,7 +30,7 @@ let gljUtil = {
|
|
|
pglj[qField] = 0;
|
|
|
pglj[mField] = 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[qField] = result.quantity;
|
|
|
pglj.tenderQuantity = result.tenderQuantity;
|
|
|
quantityMap[pg_index] = pglj;
|
|
|
@@ -169,12 +170,15 @@ let gljUtil = {
|
|
|
// 场外运输损耗率%+(装卸总次数-1)*每增加一次装卸损耗率%
|
|
|
return (offSiteTransportLossRate + (totalLoadingTimes - 1) * handlingLossRate);
|
|
|
},
|
|
|
- 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 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;
|
|
|
@@ -192,6 +196,7 @@ let gljUtil = {
|
|
|
tender_qantity_sum = scMathUtil.roundForObj(tender_qantity_sum + tender_total, q_decimal);
|
|
|
}
|
|
|
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;
|