VppUnProperties.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.usky.vpp.config;
  2. import lombok.Data;
  3. import org.springframework.boot.context.properties.ConfigurationProperties;
  4. import org.springframework.stereotype.Component;
  5. /**
  6. * 运管平台 UN/DN 对接配置
  7. */
  8. @Data
  9. @Component
  10. @ConfigurationProperties(prefix = "vpp.un")
  11. public class VppUnProperties {
  12. /** 运管平台 UN 基地址 */
  13. private String baseUrl;
  14. /** 虚拟电厂运营商 DN ID */
  15. private String dnId;
  16. /** DN 名称 */
  17. private String dnName;
  18. /** DN 对外服务地址(供 UN 回调) */
  19. private String transportAddress;
  20. /** UN 公钥 Base64 */
  21. private String unPublicKey;
  22. /** DN 公钥 Base64 */
  23. private String dnPublicKey;
  24. /** DN 私钥 Base64 */
  25. private String dnPrivateKey;
  26. /** Poll 轮询间隔秒,默认 10 */
  27. private Integer pollIntervalSec = 10;
  28. /** 是否启用 DN 主动调用 UN(Poll/申报/出清等) */
  29. private Boolean outboundEnabled = false;
  30. /** 是否启用 Poll 定时任务 */
  31. private Boolean pollEnabled = false;
  32. /** 是否启用 SM2/SM3 加解密(未配置密钥时自动降级为明文) */
  33. private Boolean cryptoEnabled = false;
  34. /** 申报价格下调系数,默认 0.8 */
  35. private String priceDownCoeff = "0.8";
  36. /** 已保存的 registrationID(首次注册后需持久化) */
  37. private String registrationId;
  38. /** Token 请求头,默认 Authorization */
  39. private String tokenHeader = "Authorization";
  40. /** Token 前缀,默认 Bearer */
  41. private String tokenPrefix = "Bearer ";
  42. /** Token 有效期分钟(文档默认 30),用于本地缓存刷新 */
  43. private Integer tokenTtlMinutes = 25;
  44. /** 收到出清公示后是否自动向 UN 发送 CreateEventResponse */
  45. private Boolean autoAckClearing = false;
  46. /** 启动时自动注册 UN(需 outbound-enabled=true) */
  47. private Boolean autoRegisterOnStartup = false;
  48. /** HTTP 连接超时毫秒 */
  49. private Integer connectTimeoutMs = 10000;
  50. /** HTTP 读超时毫秒 */
  51. private Integer readTimeoutMs = 30000;
  52. public boolean isOutboundActive() {
  53. return Boolean.TRUE.equals(outboundEnabled) && baseUrl != null && !baseUrl.trim().isEmpty();
  54. }
  55. public boolean isPollActive() {
  56. return Boolean.TRUE.equals(pollEnabled) && isOutboundActive();
  57. }
  58. }