DmitrMakeev commited on
Commit
b2fbbc4
·
verified ·
1 Parent(s): 66896aa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -6
app.py CHANGED
@@ -984,12 +984,35 @@ def handle_calculation():
984
  try:
985
  data = request.json
986
 
987
- # Создаем калькулятор (как РАБОТАЛО РАНЬШЕ)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
988
  calculator = NutrientCalculator(
989
  volume_liters=data['profileSettings']['liters']
990
  )
991
 
992
- # Устанавливаем профиль (старый рабочий вариант)
993
  calculator.target_profile = {
994
  'P': data['profileSettings']['P'],
995
  'K': data['profileSettings']['K'],
@@ -1000,13 +1023,12 @@ def handle_calculation():
1000
  'N (NH4+)': data['profileSettings']['N (NH4+)']
1001
  }
1002
 
1003
- # Устанавливаем удобрения (как было)
1004
  calculator.fertilizers = data['fertilizerConstants']
1005
 
1006
  # Выполняем расчет
1007
  result = calculator.calculate()
1008
 
1009
- # Возвращаем в СТАРОМ формате (как работало)
1010
  return jsonify({
1011
  "deficits": result.get('deficits', {}),
1012
  "ec": result.get('ec', 0),
@@ -1018,7 +1040,7 @@ def handle_calculation():
1018
  except Exception as e:
1019
  return jsonify({
1020
  "error": str(e),
1021
- "message": "Ошибка расчета (старый обработчик)"
1022
  }), 500
1023
 
1024
 
@@ -1044,7 +1066,6 @@ def handle_calculation():
1044
 
1045
 
1046
 
1047
-
1048
 
1049
 
1050
  if __name__ == '__main__':
 
984
  try:
985
  data = request.json
986
 
987
+ # Проверка наличия всех обязательных полей
988
+ required_fertilizers = [
989
+ "Кальциевая селитра", "Калий азотнокислый",
990
+ "Аммоний азотнокислый", "Сульфат магния",
991
+ "Монофосфат калия", "Калий сернокислый"
992
+ ]
993
+
994
+ for fert in required_fertilizers:
995
+ if fert not in data['fertilizerConstants']:
996
+ return jsonify({
997
+ "error": f"Отсутствует удобрение: {fert}",
998
+ "message": "Неполные данные об удобрениях"
999
+ }), 400
1000
+
1001
+ # Проверка нулевых значений
1002
+ for fert_name, fert_data in data['fertilizerConstants'].items():
1003
+ for element, percent in fert_data.items():
1004
+ if percent is None:
1005
+ return jsonify({
1006
+ "error": f"Не указан процент для {element} в {fert_name}",
1007
+ "message": "Нулевые значения в удобрениях"
1008
+ }), 400
1009
+
1010
+ # Создаем калькулятор
1011
  calculator = NutrientCalculator(
1012
  volume_liters=data['profileSettings']['liters']
1013
  )
1014
 
1015
+ # Устанавливаем профиль
1016
  calculator.target_profile = {
1017
  'P': data['profileSettings']['P'],
1018
  'K': data['profileSettings']['K'],
 
1023
  'N (NH4+)': data['profileSettings']['N (NH4+)']
1024
  }
1025
 
1026
+ # Устанавливаем удобрения
1027
  calculator.fertilizers = data['fertilizerConstants']
1028
 
1029
  # Выполняем расчет
1030
  result = calculator.calculate()
1031
 
 
1032
  return jsonify({
1033
  "deficits": result.get('deficits', {}),
1034
  "ec": result.get('ec', 0),
 
1040
  except Exception as e:
1041
  return jsonify({
1042
  "error": str(e),
1043
+ "message": "Ошибка расчета"
1044
  }), 500
1045
 
1046
 
 
1066
 
1067
 
1068
 
 
1069
 
1070
 
1071
  if __name__ == '__main__':