TjpgzbReportIo.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using QM.KJGH.Model.KJGH;
  2. using QM.KJGH.Model.View;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using WS;
  9. using WS.IO.Office;
  10. namespace QM.KJGH.CGGL.Model.QxCghj
  11. {
  12. /// <summary>
  13. /// 体检评估指标
  14. /// </summary>
  15. public class TjpgzbReportIo
  16. {
  17. /// <summary>
  18. /// 指标编号(2021003)
  19. /// </summary>
  20. [Export("指标编号", 1)]
  21. public string code { set; get; }
  22. /// <summary>
  23. /// 行政区划代码(150100)
  24. /// </summary>
  25. [Export("行政区划代码", 2)]
  26. public string xzqdm { set; get; }
  27. /// <summary>
  28. /// 监测时间(注:监测时间为监测值的时间更新频率为年度时,
  29. /// 监测时间仅填写年份,如2020;
  30. /// 更新频率为季度时,填写年度-季度,如2020-2;
  31. /// 更新频率为月度时,填写年度-月度,如2020-03;)
  32. /// </summary>
  33. [Export("监测时间", 3)]
  34. public string monitorTime { set; get; }
  35. /// <summary>
  36. /// 监测数值(注:如果监测值填写了,则上面监测时间字段也必须填写。反之亦然,否则接口会过滤)
  37. /// </summary>
  38. [Export("监测值", 4)]
  39. public string monitorValue { set; get; }
  40. /// <summary>
  41. /// 规划年份(注:如果规划年份填写了,则下面规划值也必须填写。反之亦然,否则接口会过滤。如2020)
  42. /// </summary>
  43. [Export("近期规划年", 5)]
  44. public string targetYear { set; get; }
  45. /// <summary>
  46. /// 规划值(注:如果规划值填写了,则上面规划年份也必须填写。反之亦然,否则接口会过滤。如12.32)
  47. /// </summary>
  48. [Export("近期规划值", 6)]
  49. public string targetValue { set; get; }
  50. /// <summary>
  51. /// 基期年(注:基期年需要更新则上面两个规划年份、规划值都必须填写,否则接口会过滤。如2020)
  52. /// </summary>
  53. [Export("基期年", 7)]
  54. public string baseYear { set; get; }
  55. /// <summary>
  56. /// 基期值(注:基期年填写了,则上面基期年也必须填写。反之亦然,否则接口会过滤。如2020)
  57. /// </summary>
  58. [Export("基期值", 8)]
  59. public string baseValue { set; get; }
  60. /// <summary>
  61. /// 远期规划年份(注:如果远期规划年份填写了,则下面远期规划值也必须填写。反之亦然,否则接口会过滤。如2050)
  62. /// </summary>
  63. [Export("远期规划目标年", 9)]
  64. public string forwardTargetYear { set; get; }
  65. /// <summary>
  66. /// 远期规划值(注:如果远期规划值填写了,则上面远期规划年份也必须填写。反之亦然,否则接口会过滤。如12.32)
  67. /// </summary>
  68. [Export("远期规划目标值", 10)]
  69. public string forwardTargetValue { set; get; }
  70. public string JCSJLX { get
  71. {
  72. var len = monitorTime.Trim().Length;
  73. switch (len)
  74. {
  75. case 4:
  76. return "年";
  77. case 6:
  78. return "季";
  79. case 7:
  80. return "月";
  81. default:
  82. return "";
  83. }
  84. }
  85. }
  86. /// <summary>
  87. /// 检查数据
  88. /// </summary>
  89. /// <returns></returns>
  90. public string CheckData(Dictionary<string, string> listZbx, Dictionary<string, string> listXzq)
  91. {
  92. List<string> msgs = new List<string>();
  93. #region 必填性
  94. if (string.IsNullOrWhiteSpace(code))
  95. msgs.Add($"指标编号(code)不能为空");
  96. if (string.IsNullOrWhiteSpace(xzqdm))
  97. msgs.Add($"行政区划代码(xzqdm)不能为空");
  98. if (string.IsNullOrWhiteSpace(monitorTime))
  99. msgs.Add($"监测时间(monitorTime)不能为空");
  100. if (string.IsNullOrWhiteSpace(monitorValue))
  101. msgs.Add($"监测值(monitorValue)不能为空");
  102. #endregion
  103. #region 完整性
  104. if (string.IsNullOrWhiteSpace(targetYear) != string.IsNullOrWhiteSpace(targetValue))
  105. msgs.Add($"近期规划年(targetYear)、近期规划值(targetValue)必须都为空或都不为空");
  106. if (string.IsNullOrWhiteSpace(baseYear) != string.IsNullOrWhiteSpace(baseValue))
  107. msgs.Add($"基期年(baseYear)、基期值(baseValue)必须都为空或都不为空");
  108. if (string.IsNullOrWhiteSpace(forwardTargetYear) != string.IsNullOrWhiteSpace(forwardTargetValue))
  109. msgs.Add($"远期规划目标年(forwardTargetYear)、远期规划目标值(forwardTargetValue)必须都为空或都不为空");
  110. #endregion
  111. #region 正确性
  112. if (!listZbx.Keys.Contains(code))
  113. msgs.Add($"指标编号({code})不存在");
  114. if (!listXzq.Keys.Contains(xzqdm))
  115. msgs.Add($"行政区划代码({xzqdm})不存在");
  116. #endregion
  117. if (msgs.Count > 0)
  118. return msgs.Join("、");
  119. return string.Empty;
  120. }
  121. }
  122. }