| 
					
				 | 
			
			
				@@ -1,11 +1,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Created by Tony on 2017/6/21. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-let calcBaseCodeCollection = ["定额基价材料费", "定额基价机械费", "定额基价人工费" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let calcBaseCodeCollection = ["定额基价人工费", "定额基价材料费", "定额基价机械费" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     , "定额基价人工费(调整后)", "定额基价材料费(调整后)", "定额基价机械费(调整后)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     , "市场价格人工费", "市场价格材料费", "市场价格机械费" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     , "定额基价机上人工费", "主材费", "设备费" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let dummyCalcBaseCodeTypeCollection = [[2], [6], [64] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    , [], [], [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    , [], [], [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    , [], [], [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let executeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     currentTpl : null, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,26 +23,42 @@ let executeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     base: function(calcBaseCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = executeObj, rst = -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            idx = 10 + calcBaseCodeCollection.indexOf(calcBaseCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = executeObj, rst = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            idx = calcBaseCodeCollection.indexOf(calcBaseCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (idx >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (dummyCalcBaseCodeTypeCollection[idx].length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let tmpSum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (let glj of me.currentRationItem.rationGljList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (dummyCalcBaseCodeTypeCollection[idx].indexOf(glj["glj"]["gljType"]) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        tmpSum += glj["glj"]["basePrice"] * glj["consumeAmt"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = tmpSum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //rst = 10 + idx; //随便给个数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst = idx; //暂时返回值,测试用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //rst = idx; //暂时返回值,测试用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     fee: function(feeID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let me = executeObj, rst = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //rst = parseInt(feeID); //暂时返回值,测试用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst = 0.89; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = executeObj, rst = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let fee of me.currentFeeRateFile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (fee.ID == feeID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                rst = fee.rate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (me.compiledFeeRateFile["fee_" + feeID]) rst = me.compiledFeeRateFile["fee_" + feeID].rate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     factor: function(factorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = executeObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rst = 0.89; //暂时固定输出,测试用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,10 +141,20 @@ class calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //console.log(item.compiledExpr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let private_comile_feeFile = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (me.calFee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.compiledFee = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (let fee of me.calFee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    me.compiledFee["fee_" + fee.ID] = fee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (me.calcTpl && me.calcTpl.calcItems && me.calcTpl.calcItems.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.calcTpl.compiledSeq = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             me.compileAssistantObj = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //1. first round -> prepare 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            private_comile_feeFile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let i = 0; i < me.calcTpl.calcItems.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let item = me.calcTpl.calcItems[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 me.compileAssistantObj[item.code] = item; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -149,14 +180,12 @@ class calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let $CE = executeObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $CE.currentRationItem = $RATION; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $CE.currentTpl = me; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $CE.currentFeeRateFile = me.calFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $CE.compiledFeeRateFile = me.compiledFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let idx of me.calcTpl.compiledSeq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let item = me.calcTpl.calcItems[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 item.execRst = eval(item.compiledExpr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (let idx of me.calcTpl.compiledSeq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let item = me.calcTpl.calcItems[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                console.log('code: ' + item.code + ' | expression: ' + item.compiledExpr +  ' | result: ' + item.execRst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |