修改增加完整工程json

This commit is contained in:
chentianrui
2025-08-01 17:37:40 +08:00
parent 9609bb67b4
commit b67cc5e2c0
36 changed files with 4792633 additions and 809028 deletions
+18 -14
View File
@@ -236,9 +236,9 @@ class DefaultCalculationStrategy(CalculationStrategy):
def __init__(self):
# 导入必要的模块
from expressioncalculator import ExpressionCalculator
from bcl_utils import calculator
from item_acquisition import get_quantity_nodes, get_classified_resource_nodes
from equipment_calculation.expressioncalculator import ExpressionCalculator
from equipment_calculation.bcl_utils import calculator
from equipment_calculation.item_acquisition import get_quantity_nodes, get_classified_resource_nodes
# 缓存已计算过的费用
self.calculated_fees = {}
@@ -252,7 +252,7 @@ class DefaultCalculationStrategy(CalculationStrategy):
in_calculation: Optional[Set[str]] = None,
) -> float:
"""计算取费基数"""
from quantity_fee_calculator import calculate_fee_base as original_calculate_fee_base
from equipment_calculation.quantity_fee_calculator import calculate_fee_base as original_calculate_fee_base
# 传递自身作为计算策略
return original_calculate_fee_base(fee_base, cost_table, project_node, context, in_calculation, self)
@@ -266,7 +266,9 @@ class DefaultCalculationStrategy(CalculationStrategy):
in_calculation: Optional[Set[str]] = None,
) -> float:
"""计算表内费用"""
from quantity_fee_calculator import calculate_internal_fee as original_calculate_internal_fee
from equipment_calculation.quantity_fee_calculator import (
calculate_internal_fee as original_calculate_internal_fee,
)
# 传递自身作为计算策略
return original_calculate_internal_fee(fee_code, cost_table, project_node, context, in_calculation, self)
@@ -274,20 +276,22 @@ class DefaultCalculationStrategy(CalculationStrategy):
def calculate_external_variable(self, var_name: str, context: Any) -> float:
"""计算表外变量"""
# 直接使用 calculator.calculate,而不是调用 quantity_fee_calculator.py 中的函数
from bcl_utils import calculator
from equipment_calculation.bcl_utils import calculator
result = calculator.calculate(var_name, context)
return float(result) if result is not None else 0.0
def find_fee_item_by_code(self, cost_table: Dict[str, Any], code: str) -> Optional[Dict[str, Any]]:
"""在取费表中查找指定代码的费用项"""
from quantity_fee_calculator import find_fee_item_by_code as original_find_fee_item_by_code
from equipment_calculation.quantity_fee_calculator import (
find_fee_item_by_code as original_find_fee_item_by_code,
)
return original_find_fee_item_by_code(cost_table, code)
def find_fee_base_nodes(self, node: Dict[str, Any], result: Optional[List] = None) -> List[Dict[str, Any]]:
"""递归查找取费表中包含"取费基数"的节点或有子节点的费用项"""
from quantity_fee_calculator import find_fee_base_nodes as original_find_fee_base_nodes
from equipment_calculation.quantity_fee_calculator import find_fee_base_nodes as original_find_fee_base_nodes
return original_find_fee_base_nodes(node, result)
@@ -299,7 +303,7 @@ class DefaultCalculationStrategy(CalculationStrategy):
engineering_type: Optional[str] = None,
) -> Dict[str, float]:
"""计算所有费用"""
from quantity_fee_calculator import calculate_all_fees as original_calculate_all_fees
from equipment_calculation.quantity_fee_calculator import calculate_all_fees as original_calculate_all_fees
# 传递自身作为计算策略
return original_calculate_all_fees(project_node, cost_table, json_file_path, engineering_type, self)
@@ -311,25 +315,25 @@ class DefaultCalculationStrategy(CalculationStrategy):
json_file_path: Optional[str] = None,
) -> List[Dict[str, Any]]:
"""计算人材机节点的数量"""
from resource_fee_calculator import calc_rcj_count as original_calc_rcj_count
from equipment_calculation.resource_fee_calculator import calc_rcj_count as original_calc_rcj_count
return original_calc_rcj_count(rcj_nodes, project_children, json_file_path)
def cat_rcj_count(self, rcj_nodes: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
"""汇总人材机节点的数量"""
from resource_fee_calculator import cat_rcj_count as original_cat_rcj_count
from equipment_calculation.resource_fee_calculator import cat_rcj_count as original_cat_rcj_count
return original_cat_rcj_count(rcj_nodes)
def calc_rcj_fee(self, rcj_nodes: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
"""计算人材机节点的费用"""
from resource_fee_calculator import calc_rcj_fee as original_calc_rcj_fee
from equipment_calculation.resource_fee_calculator import calc_rcj_fee as original_calc_rcj_fee
return original_calc_rcj_fee(rcj_nodes)
def format_rcj_output(self, rcj_nodes: List[Dict[str, Any]], node_type: str) -> List[Dict[str, Any]]:
"""格式化人材机节点输出"""
from resource_fee_calculator import format_rcj_output as original_format_rcj_output
from equipment_calculation.resource_fee_calculator import format_rcj_output as original_format_rcj_output
return original_format_rcj_output(rcj_nodes, node_type)
@@ -347,7 +351,7 @@ class DefaultCalculationStrategy(CalculationStrategy):
Dict[str, Any]: 计算结果
"""
# 导入原始函数
from resource_fee_calculator import calculate_rcj_fees as original_calculate_rcj_fees
from equipment_calculation.resource_fee_calculator import calculate_rcj_fees as original_calculate_rcj_fees
# 调用原始函数
return original_calculate_rcj_fees(json_file_path, project_name, project_guid)