上传文件

This commit is contained in:
chentianrui
2025-08-01 18:12:14 +08:00
parent b67cc5e2c0
commit ce2986fbe2
5 changed files with 56 additions and 8 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import copy
# 配置logging # 配置logging
logging.basicConfig( logging.basicConfig(
level=logging.DEBUG, level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
handlers=[logging.FileHandler("bcl_calculator.log"), logging.StreamHandler()], handlers=[logging.FileHandler("bcl_calculator.log"), logging.StreamHandler()],
) )
+5 -5
View File
@@ -316,7 +316,7 @@ def init_bcl_calculator(software_category, engineering_type, calculation_type):
# 构建计算配置路径 # 构建计算配置路径
# 格式:计算配置/软件类型(主网,配网,技改)/计算类型(工程量,人材机)/工程类型(预算,清单) # 格式:计算配置/软件类型(主网,配网,技改)/计算类型(工程量,人材机)/工程类型(预算,清单)
config_path = f"计算配置/{software_category}/{calculation_type}/{engineering_type}" config_path = f"equipment_calculation/计算配置/{software_category}/{calculation_type}/{engineering_type}"
print(f"加载计算配置: {config_path}") print(f"加载计算配置: {config_path}")
@@ -333,14 +333,14 @@ def init_bcl_calculator(software_category, engineering_type, calculation_type):
print(f"创建计算配置目录失败: {e}") print(f"创建计算配置目录失败: {e}")
# 如果目录不存在,使用默认配置 # 如果目录不存在,使用默认配置
default_path = "计算配置/主网/工程量/预算" default_path = "equipment_calculation/计算配置/主网/工程量/预算"
print(f"使用默认计算配置: {default_path}") print(f"使用默认计算配置: {default_path}")
# 检查默认配置目录是否存在 # 检查默认配置目录是否存在
if not os.path.exists(default_path): if not os.path.exists(default_path):
print(f"默认计算配置目录不存在: {default_path}") print(f"默认计算配置目录不存在: {default_path}")
# 尝试使用原始默认配置 # 尝试使用原始默认配置
original_default_path = "计算配置/主网/主网预算" original_default_path = "equipment_calculation/计算配置/主网/主网预算"
print(f"尝试使用原始默认计算配置: {original_default_path}") print(f"尝试使用原始默认计算配置: {original_default_path}")
if os.path.exists(original_default_path): if os.path.exists(original_default_path):
@@ -356,14 +356,14 @@ def init_bcl_calculator(software_category, engineering_type, calculation_type):
if False == result: if False == result:
print(f"加载脚本错误: {calculator.get_last_error()}") print(f"加载脚本错误: {calculator.get_last_error()}")
# 尝试使用默认配置 # 尝试使用默认配置
default_path = "计算配置/主网/工程量/预算" default_path = "equipment_calculation/计算配置/主网/工程量/预算"
print(f"尝试使用默认计算配置: {default_path}") print(f"尝试使用默认计算配置: {default_path}")
# 检查默认配置目录是否存在 # 检查默认配置目录是否存在
if not os.path.exists(default_path): if not os.path.exists(default_path):
print(f"默认计算配置目录不存在: {default_path}") print(f"默认计算配置目录不存在: {default_path}")
# 尝试使用原始默认配置 # 尝试使用原始默认配置
original_default_path = "计算配置/主网/主网预算" original_default_path = "equipment_calculation/计算配置/主网/主网预算"
print(f"尝试使用原始默认计算配置: {original_default_path}") print(f"尝试使用原始默认计算配置: {original_default_path}")
if os.path.exists(original_default_path): if os.path.exists(original_default_path):
+2 -2
View File
@@ -295,8 +295,8 @@ def process_BCL_calculate(input_folder: str, output_folder: str) -> List[Tuple[s
def main(): def main():
"""程序入口""" """程序入口"""
input_folder = "project2json/outputs" input_folder = "project2json/outputs/json"
output_folder = "outputs-2" output_folder = "project2json/outputs/bcl_results"
results = process_BCL_calculate(input_folder, output_folder) results = process_BCL_calculate(input_folder, output_folder)
@@ -401,6 +401,14 @@ class MainGridBudgetCalculator(CalculatorBase):
"""创建主网预算计算策略""" """创建主网预算计算策略"""
return MainGridBudgetCalculationStrategy() return MainGridBudgetCalculationStrategy()
def set_output_dir(self, output_dir):
"""
设置计算结果的输出目录
:param output_dir: 输出目录的路径
"""
self.output_dir = output_dir
def apply_quantity_fee_rules(self) -> None: def apply_quantity_fee_rules(self) -> None:
"""应用主网预算特定的工程量取费规则""" """应用主网预算特定的工程量取费规则"""
print(f"应用{self.software_type.name}特定的工程量取费规则 - 对节点进行预处理") print(f"应用{self.software_type.name}特定的工程量取费规则 - 对节点进行预处理")
@@ -467,6 +475,14 @@ class MainGridBillCalculator(CalculatorBase):
"""创建主网清单计算策略""" """创建主网清单计算策略"""
return MainGridBillCalculationStrategy() return MainGridBillCalculationStrategy()
def set_output_dir(self, output_dir):
"""
设置计算结果的输出目录
:param output_dir: 输出目录的路径
"""
self.output_dir = output_dir
def apply_quantity_fee_rules(self) -> None: def apply_quantity_fee_rules(self) -> None:
"""应用主网清单特定的工程量取费规则""" """应用主网清单特定的工程量取费规则"""
print(f"应用{self.software_type.name}特定的工程量取费规则 - 对节点进行预处理") print(f"应用{self.software_type.name}特定的工程量取费规则 - 对节点进行预处理")
@@ -531,6 +547,14 @@ class DistributionBudgetCalculator(CalculatorBase):
def __init__(self): def __init__(self):
super().__init__(DISTRIBUTION_BUDGET) super().__init__(DISTRIBUTION_BUDGET)
def set_output_dir(self, output_dir):
"""
设置计算结果的输出目录
:param output_dir: 输出目录的路径
"""
self.output_dir = output_dir
def create_calculation_strategy(self) -> CalculationStrategy: def create_calculation_strategy(self) -> CalculationStrategy:
"""创建配网预算计算策略""" """创建配网预算计算策略"""
return DistributionBudgetCalculationStrategy() return DistributionBudgetCalculationStrategy()
@@ -562,6 +586,14 @@ class DistributionBillCalculator(CalculatorBase):
"""创建配网清单计算策略""" """创建配网清单计算策略"""
return DistributionBillCalculationStrategy() return DistributionBillCalculationStrategy()
def set_output_dir(self, output_dir):
"""
设置计算结果的输出目录
:param output_dir: 输出目录的路径
"""
self.output_dir = output_dir
def apply_quantity_fee_rules(self) -> None: def apply_quantity_fee_rules(self) -> None:
"""应用配网清单特定的工程量取费规则""" """应用配网清单特定的工程量取费规则"""
print(f"应用{self.software_type.name}特定的工程量取费规则") print(f"应用{self.software_type.name}特定的工程量取费规则")
@@ -589,6 +621,14 @@ class TechnicalRenovationBudgetCalculator(CalculatorBase):
"""创建技改预算计算策略""" """创建技改预算计算策略"""
return TechnicalRenovationBudgetCalculationStrategy() return TechnicalRenovationBudgetCalculationStrategy()
def set_output_dir(self, output_dir):
"""
设置计算结果的输出目录
:param output_dir: 输出目录的路径
"""
self.output_dir = output_dir
def apply_quantity_fee_rules(self) -> None: def apply_quantity_fee_rules(self) -> None:
"""应用技改预算特定的工程量取费规则""" """应用技改预算特定的工程量取费规则"""
print(f"应用{self.software_type.name}特定的工程量取费规则") print(f"应用{self.software_type.name}特定的工程量取费规则")
@@ -616,6 +656,14 @@ class TechnicalRenovationBillCalculator(CalculatorBase):
"""创建技改清单计算策略""" """创建技改清单计算策略"""
return TechnicalRenovationBillCalculationStrategy() return TechnicalRenovationBillCalculationStrategy()
def set_output_dir(self, output_dir):
"""
设置计算结果的输出目录
:param output_dir: 输出目录的路径
"""
self.output_dir = output_dir
def apply_quantity_fee_rules(self) -> None: def apply_quantity_fee_rules(self) -> None:
"""应用技改清单特定的工程量取费规则""" """应用技改清单特定的工程量取费规则"""
print(f"应用{self.software_type.name}特定的工程量取费规则") print(f"应用{self.software_type.name}特定的工程量取费规则")