pmProgressDTO.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using WebAPIBase.Utils;
  7. namespace Sugar.Enties
  8. {
  9. /// <summary>
  10. /// 进度计划与进度工作项关联
  11. /// </summary>
  12. public class pmProgressDTO
  13. {
  14. /// <summary>
  15. /// 是否折叠
  16. /// </summary>
  17. public bool IsCollapse { get; set; }
  18. public string ProjectCode { get; set; }
  19. /// <summary>
  20. /// 进度计划ID
  21. /// </summary>
  22. public int ProgressId { get; set; }
  23. /// <summary>
  24. /// 进度计划名
  25. /// </summary>
  26. public string ProgressName { get; set; }
  27. /// <summary>
  28. /// 节点名
  29. /// </summary>
  30. public string NodeName { get; set; }
  31. /// <summary>
  32. /// 节点ID
  33. /// </summary>
  34. public int ProgressNodeId { get; set; }
  35. /// <summary>
  36. /// 是否主体进度 1:主体 2:专项
  37. /// </summary>
  38. public int IsMaster { get; set; }
  39. /// <summary>
  40. /// 是否集团关键节点
  41. /// </summary>
  42. public int IsCompanyKey { get; set; }
  43. /// <summary>
  44. /// 进度状态(0=未开始;1=进行中;4=已完成)
  45. /// </summary>
  46. public int Status { get; set; }
  47. /// <summary>
  48. /// 阶段状态
  49. /// </summary>
  50. public int AlertState
  51. {
  52. get
  53. {
  54. int state = 1;
  55. var finish = Convert.ToDateTime(plannedFinishDate);
  56. if (Convert.ToDateTime(plannedFinishDate) < DateTime.Now) //未按期完成
  57. {
  58. if (CompletePercent < 100)
  59. {
  60. state = 3;
  61. }
  62. else
  63. {
  64. state = 1;
  65. }
  66. }
  67. else if (finish > DateTime.Now && finish.AddDays(3) > DateTime.Now) //预警
  68. {
  69. if (CompletePercent < 100)
  70. {
  71. state = 2;
  72. }
  73. else
  74. {
  75. state = 1;
  76. }
  77. }
  78. return state;
  79. }
  80. }
  81. /// <summary>
  82. /// 计划工期
  83. /// </summary>
  84. public int Duration
  85. {
  86. get;
  87. set;
  88. }
  89. /// <summary>
  90. /// 完成度
  91. /// </summary>
  92. public int CompletePercent { get; set; }
  93. private string _PlannedStartDate;
  94. /// <summary>
  95. /// 计划开始时间
  96. /// </summary>
  97. public string PlannedStartDate
  98. {
  99. get
  100. {
  101. if (_PlannedStartDate == null)
  102. {
  103. return null;
  104. }
  105. var arr = _PlannedStartDate.Split(' ');
  106. return arr[0];
  107. }
  108. set
  109. {
  110. _PlannedStartDate = value;
  111. }
  112. }
  113. private string _plannedFinishDate;
  114. /// <summary>
  115. /// 计划结束时间
  116. /// </summary>
  117. public string plannedFinishDate
  118. {
  119. get
  120. {
  121. if (_plannedFinishDate == null)
  122. {
  123. return null;
  124. }
  125. var arr = _plannedFinishDate.Split(' ');
  126. return arr[0];
  127. }
  128. set
  129. {
  130. _plannedFinishDate = value;
  131. }
  132. }
  133. private string _ActualStartDate;
  134. /// <summary>
  135. /// 实际开始时间
  136. /// </summary>
  137. public string ActualStartDate
  138. {
  139. get
  140. {
  141. return _ActualStartDate?.Substring(0, 10);
  142. }
  143. set
  144. {
  145. _ActualStartDate = value;
  146. }
  147. }
  148. private string _ActualFinishDate;
  149. /// <summary>
  150. /// 实际结束时间
  151. /// </summary>
  152. public string ActualFinishDate
  153. {
  154. get
  155. {
  156. return _ActualFinishDate?.Substring(0, 10);
  157. }
  158. set
  159. {
  160. _ActualFinishDate = value;
  161. }
  162. }
  163. /// <summary>
  164. /// 进度报告
  165. /// </summary>
  166. public List<pmProgressReport> ReportList { get; set; }
  167. }
  168. public class ProgressDTO
  169. {
  170. /// <summary>
  171. /// 是否折叠
  172. /// </summary>
  173. public bool IsCollapse { get; set; }
  174. public int ProgressId { get; set; }
  175. public string ProgressName { get; set; }
  176. public List<pmProgressDTO> ProgressList { get; set; }
  177. }
  178. }