物管理后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.0 KiB

  1. @startuml
  2. 'https://plantuml.com/sequence-diagram
  3. participant Events as event
  4. participant DataTransferListener as entrance
  5. participant TsKvEventServiceImpl as eventSvc
  6. participant TsKvService as tskvSvc
  7. participant 其他服务或监听器 as os
  8. == 事件统一入口 ==
  9. event -> entrance: push事件
  10. == 根据主题处理不同事件 ==
  11. entrance -> eventSvc: push【latest】或【history】事件
  12. note over eventSvc: 处理topic包含v1/tskv的事件
  13. note over eventSvc: 【latest】或【history】事件处理
  14. alt #LightBlue latest 事件
  15. eventSvc -> tskvSvc: 【async】saveProtoLatest:将推送来的数据去重、新增最新数据
  16. |||
  17. else #Lavender history 事件
  18. eventSvc -> tskvSvc: saveProtoTsKv:存储所有推送来的数据
  19. eventSvc -> tskvSvc: 【async】saveProtoLatest:将推送来的数据去重、新增最新数据
  20. |||
  21. end
  22. |||
  23. eventSvc -> os: 执行物计算(push CalcLogSaveEvent)
  24. eventSvc -> os: 执行过滤引擎(push FilterLogSaveEvent)
  25. |||
  26. eventSvc -> eventSvc: 读application.yml配置中的属性列表:keys
  27. eventSvc -> eventSvc: 将keys中的每个基础属性添加am后缀,形成新的属性列表amKeys
  28. |||
  29. loop dataProtoList
  30. alt #LightBlue 如果是基础属性,且>0
  31. eventSvc -> eventSvc: 将dataProto添加到dataProtos
  32. |||
  33. else #Lavender 如果是am属性
  34. eventSvc -> eventSvc: 将dataProto添加到amList
  35. |||
  36. else #Gray 其他
  37. eventSvc -> eventSvc: 丢弃
  38. end
  39. end
  40. |||
  41. alt #LightBlue dataProtos非空
  42. eventSvc -> tskvSvc: 【async】amSumProtos(dataProtos);
  43. |||
  44. else #Lavender amList非空
  45. eventSvc -> tskvSvc: hhDdMmYySum(amList);
  46. |||
  47. eventSvc -> os: 峰平谷尖计算(push PeakEvent)
  48. |||
  49. end
  50. |||
  51. @enduml