template_service.py 801 B

123456789101112131415161718192021222324252627282930313233
  1. import json
  2. def parse_template(estimate_packet: str):
  3. tpl = json.loads(estimate_packet)
  4. return tpl["template"]
  5. def build_template(rows):
  6. result = []
  7. step_map = {}
  8. for r in rows:
  9. step = step_map.setdefault(r.step_id, {
  10. "stepId": r.step_id,
  11. "stepName": r.step_name,
  12. "properties": {}
  13. })
  14. prop = step["properties"].setdefault(r.option_key_id, {
  15. "keyId": r.option_key_id,
  16. "name": r.option_key_name,
  17. "values": []
  18. })
  19. prop["values"].append({
  20. "valueId": r.option_id,
  21. "valueText": r.option_name
  22. })
  23. for step in step_map.values():
  24. step["properties"] = list(step["properties"].values())
  25. result.append(step)
  26. return result