DmitrMakeev commited on
Commit
5f91311
·
verified ·
1 Parent(s): 09dd2e6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -78
app.py CHANGED
@@ -1001,90 +1001,32 @@ def handle_calculation():
1001
  print(f"{fert_name}: {fert_data}")
1002
 
1003
  # Логируем настройки профиля
1004
- print("\n=== НАСТРОЙКИ ПРОФИЛЯ ===")
1005
- for param, value in raw_data['profileSettings'].items():
1006
- print(f"{param}: {value} (тип: {type(value)})")
1007
 
1008
- # Преобразуем данные удобрений
1009
- fertilizers = {}
1010
- for fert_name, fert_data in raw_data['fertilizerConstants'].items():
1011
- fertilizers[fert_name] = {
1012
- "N (NO3-)": float(fert_data.get("N (NO3-)", 0)),
1013
- "N (NH4+)": float(fert_data.get("N (NH4+)", 0)),
1014
- "P": float(fert_data.get("P", 0)),
1015
- "K": float(fert_data.get("K", 0)),
1016
- "Ca": float(fert_data.get("Ca", 0)),
1017
- "Mg": float(fert_data.get("Mg", 0)),
1018
- "S": float(fert_data.get("S", 0))
1019
- }
1020
 
1021
- # Преобразуем настройки профиля
1022
- profile_settings = raw_data['profileSettings']
1023
- profile = {
1024
- 'P': float(profile_settings.get('P', 0)),
1025
- 'K': float(profile_settings.get('K', 0)),
1026
- 'Mg': float(profile_settings.get('Mg', 0)),
1027
- 'Ca': float(profile_settings.get('Ca', 0)),
1028
- 'S': float(profile_settings.get('S', 0)),
1029
- 'N (NO3-)': float(profile_settings.get('N (NO3-)', 0)),
1030
- 'N (NH4+)': float(profile_settings.get('N (NH4+)', 0))
1031
- }
1032
- liters = int(profile_settings.get('liters', 100))
1033
-
1034
- # Логируем преобразованные данные
1035
- print("\n=== ПРЕОБРАЗОВАННЫЕ ДАННЫЕ ===")
1036
- print("Удобрения:", fertilizers)
1037
- print("Профиль:", profile)
1038
- print("Литры:", liters)
1039
-
1040
- # Создаем калькулятор
1041
- calculator = NutrientCalculator(volume_liters=liters)
1042
- calculator.fertilizers = fertilizers
1043
- calculator.target_profile.update(profile)
1044
-
1045
- # Выполняем расчет
1046
  calculator.calculate()
1047
 
1048
- # Формируем ответ
1049
- response = {
1050
- "fertilizers": [],
1051
- "profile": [],
1052
- "ec": calculator.calculate_ec(),
1053
- "deficits": calculator.calculate_deficits()
1054
- }
1055
 
1056
- # Заполняем удобрения
1057
- for fert_name, result in calculator.results.items():
1058
- response["fertilizers"].append({
1059
- "name": fert_name,
1060
- "grams": round(result['граммы'], 3),
1061
- "adds": {k.replace('внесет ', ''): v
1062
- for k, v in result.items()
1063
- if k.startswith('внесет')}
1064
- })
1065
-
1066
- # Заполняем профиль
1067
- for element, value in calculator.actual_profile.items():
1068
- response["profile"].append({
1069
- "element": element.replace(' (NO3-)', '-NO3').replace(' (NH4+)', '-NH4'),
1070
- "ppm": round(value, 1)
1071
- })
1072
-
1073
- # Логируем результат
1074
- print("\n=== РЕЗУЛЬТАТ РАСЧЕТА ===")
1075
- print(response)
1076
- print("\n")
1077
-
1078
- return jsonify(response)
1079
-
1080
- except ValueError as e:
1081
- error_msg = f"Ошибка данных: {str(e)}"
1082
- print(f"\n!!! ОШИБКА: {error_msg}\n")
1083
- return jsonify({"error": error_msg}), 400
1084
  except Exception as e:
1085
- error_msg = f"Ошибка сервера: {str(e)}"
1086
- print(f"\n!!! КРИТИЧЕСКАЯ ОШИБКА: {error_msg}\n")
1087
- return jsonify({"error": error_msg}), 500
 
 
1088
 
1089
 
1090
 
 
1001
  print(f"{fert_name}: {fert_data}")
1002
 
1003
  # Логируем настройки профиля
1004
+ print("\n=== ПРОФИЛЬ ===")
1005
+ print("Профиль настроек:", raw_data['profileSettings'])
 
1006
 
1007
+ # Преобразуем данные клиента в серверный формат
1008
+ client_data = convert_client_data(raw_data['fertilizerConstants'])
 
 
 
 
 
 
 
 
 
 
1009
 
1010
+ # Создаём объект калькулятора
1011
+ calculator = NutrientCalculator(volume_liters=VOLUME_LITERS)
1012
+
1013
+ # Расчёт с данными клиента
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1014
  calculator.calculate()
1015
 
1016
+ # Генерация отчёта
1017
+ report = calculator.get_web_results()
1018
+
1019
+ return jsonify({
1020
+ "status": "success",
1021
+ "report": report
1022
+ })
1023
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1024
  except Exception as e:
1025
+ print(f"Ошибка при расчёте: {str(e)}")
1026
+ return jsonify({
1027
+ "status": "error",
1028
+ "message": str(e)
1029
+ }), 400
1030
 
1031
 
1032