| 
					
				 | 
			
			
				@@ -250,6 +250,10 @@ projectGljObject={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else if(sheet.name() ==  'materialTreeSheet'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             data = me.materialTree.selected.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             setting = me.materialSetting; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let notEditId= ['GC','GJ','MC','SN','SZ']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(notEditId.indexOf(data.id)!= -1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let dataCode = setting.header[col].dataCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let lockColumns = setting.view.lockColumns; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -342,7 +346,7 @@ projectGljObject={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(canChange == false){//恢复原来的值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             info.sheetName =="materialTreeSheet"?me.showMaterialTreeData():me.showProjectGljData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else if(info.sheetName =="projectGljSheet"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.batchUpdateProjectGLJ(changeInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.batchUpdateProjectGLJ(changeInfo,info.sheetName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     onMixRatioRangeChange:function (sender,info){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -376,18 +380,79 @@ projectGljObject={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    batchUpdateProjectGLJ:function(changeInfo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    batchUpdateProjectGLJ:function(changeInfo,sheetName){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let projectGLJ = projectObj.project.projectGLJ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = projectGljObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        me.batchUpdateGLJProperty(changeInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        projectGLJ.batchUpdatePrice(changeInfo,function (impactList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let selected = me.projectGljSheet.getSelections()[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.showProjectGljData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            me.projectGljSheet.setSelection(selected.row,selected.col,selected.rowCount,selected.colCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let propertyCells=[],priceCells=[]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let setting = sheetName =="materialTreeSheet"?me.materialSetting:me.projectGljSetting; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(let c of changeInfo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            c.dataCode = setting.header[c.col].dataCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(c.dataCode == 'basePrice'||c.dataCode=='marketPrice'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                priceCells.push(c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                propertyCells.push(c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.batchUpdateGLJProperty(propertyCells,sheetName,function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //价格属于单价文件表,如果与项目工料机的其它属性一起的话计算起来会比较复杂,同时出现价格与其它属性一起更新的情况也会比较少; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            projectGLJ.batchUpdatePrice(priceCells,sheetName,function (impactList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.refreshBySheetName(sheetName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    batchUpdateGLJProperty:function (changeInfo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(changeInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refreshBySheetName:function (sheetName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = projectGljObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(sheetName =="projectGljSheet"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.showProjectGljData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else if(sheetName =="materialTreeSheet"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.showMaterialTreeData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    batchUpdateGLJProperty:function (changeInfo,sheetName,callback) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = projectGljObject,updateMap = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let projectGLJ = projectObj.project.projectGLJ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(let c of changeInfo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let recode = sheetName =="materialTreeSheet"?me.materialTree.items[c.row].data:me.projectGljSheetData[c.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(recode[c.dataCode] == c.value){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            me.getUpdateData(recode.id,c.value,c.dataCode,c.quantity,updateMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(_.isEmpty(updateMap)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            callback?callback():''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projectGLJ.batchUpdateGLJProperty(updateMap,callback); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(updateMap) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getUpdateData :function (id,value,dataCode,quantity,updateMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = projectGljObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let data = updateMap[id]?updateMap[id]:{}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 如果是供货方式则需要处理数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (data === 'supply') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data.supply_quantity = me.getSupplyQuantity(value,quantity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(dataCode === 'supply_quantity'){//修改数量需做4舍5入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value =  scMathUtil.roundForObj(value,getDecimal('glj.quantity')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(dataCode === 'is_evaluate'||dataCode === 'is_adjust_price'||dataCode === 'is_main_material'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(value){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                value = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                value = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(dataCode === 'materialType' && (value == null || value=="")){//删除三材类别时,清空三材系数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data.materialCoe = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(dataCode == 'materialCoe'){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            value = scMathUtil.roundForObj(value,getDecimal("material")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data[dataCode] = value ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        updateMap[id] = data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     batchUpdateConsumption:function(changeInfo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let projectGLJ = projectObj.project.projectGLJ; 
			 |