ProductExamineTest.cs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. using Business.Core.MongoDBHelper;
  2. using Business.ResourceExamineManagement;
  3. using Business.ResourceExamineManagement.Dto;
  4. using Bussiness.Model.Tech;
  5. using Bussiness.MongoModel.Tech;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Security.Policy;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using Xunit;
  13. namespace Business.Test
  14. {
  15. /// <summary>
  16. /// 产能检查单元测试类
  17. /// </summary>
  18. public class ProductExamineTest
  19. {
  20. [Fact]
  21. public void ProductExamine()
  22. {
  23. //Arrange
  24. var sut = new ProductExamineAppService();
  25. sut.tech = CreateTechnique();
  26. sut.process = CreateProcess();
  27. sut.tech_Processes = CreateTechProcess();
  28. //Act
  29. var result = sut.ProductiveExamine(1000);
  30. //Assert
  31. Xunit.Assert.Equal(14030, result);
  32. }
  33. /// <summary>
  34. /// 创建工艺路径数据
  35. /// </summary>
  36. /// <returns></returns>
  37. public mo_mes_technique CreateTechnique()
  38. {
  39. mo_mes_technique info = new mo_mes_technique();
  40. info.id = 1111111111;
  41. info.mysql_id = 111111111111111;
  42. info.tech_name = "测试产能检查";
  43. info.level = 2;
  44. info.bom = "R650K";
  45. info.bomver = "3.0";
  46. info.desc = "断路器";
  47. return info;
  48. }
  49. /// <summary>
  50. /// 创建工序数据
  51. /// </summary>
  52. /// <returns></returns>
  53. public List<mo_mes_process> CreateProcess()
  54. {
  55. List<mo_mes_process> processes = new List<mo_mes_process>();
  56. //插入工序数据
  57. mo_mes_process info1 = new mo_mes_process();
  58. info1.id = 2222222222;
  59. info1.mysql_id = 222222222222222;
  60. info1.proc_name = "前加工1";
  61. processes.Add(info1);
  62. mo_mes_process info2 = new mo_mes_process();
  63. info2.id = 3333333333;
  64. info2.mysql_id = 333333333333333;
  65. info2.proc_name = "组装2";
  66. processes.Add(info2);
  67. mo_mes_process info3 = new mo_mes_process();
  68. info3.id = 4444444444;
  69. info3.mysql_id = 444444444444444;
  70. info3.proc_name = "老化3";
  71. processes.Add(info3);
  72. mo_mes_process info4 = new mo_mes_process();
  73. info4.id = 5555555555;
  74. info4.mysql_id = 555555555555555;
  75. info4.proc_name = "包装4";
  76. processes.Add(info4);
  77. return processes;
  78. }
  79. /// <summary>
  80. /// 创建工艺工序数据
  81. /// </summary>
  82. /// <returns></returns>
  83. public List<mo_mes_tech_process> CreateTechProcess()
  84. {
  85. List<mo_mes_tech_process> tech_Processes = new List<mo_mes_tech_process>();
  86. //前加工1
  87. mo_mes_tech_process info5 = new mo_mes_tech_process();
  88. info5.id = 6666666666;
  89. info5.mysql_id = 666666666666666;
  90. info5.tech_id = 111111111111111;
  91. info5.proc_id = 222222222222222;
  92. info5.level = 1;
  93. info5.readytime = 60;
  94. info5.wctype = 1;
  95. info5.lq = 1;
  96. info5.lqt = 10;
  97. info5.wsinuse = 4;
  98. info5.upe = 2;
  99. info5.uph = 5;
  100. info5.ct = 0;
  101. info5.effect_ratio = 0.9m;
  102. info5.nextprocid = 333333333333333;
  103. info5.parentprocid = 111111111111111;
  104. tech_Processes.Add(info5);
  105. //组装2
  106. mo_mes_tech_process info6 = new mo_mes_tech_process();
  107. info6.id = 7777777777;
  108. info6.mysql_id = 777777777777777;
  109. info6.tech_id = 111111111111111;
  110. info6.proc_id = 333333333333333;
  111. info6.level = 1;
  112. info6.readytime = 60;
  113. info6.wctype = 2;
  114. info6.lq = 16;
  115. info6.lqt = 10;
  116. info6.wsinuse = 2;
  117. info6.upe = 2;
  118. info6.uph = 0;
  119. info6.ct = 37;
  120. info6.effect_ratio = 0.9m;
  121. info6.nextprocid = 444444444444444;
  122. info6.parentprocid = 111111111111111;
  123. tech_Processes.Add(info6);
  124. //老化3
  125. mo_mes_tech_process info7 = new mo_mes_tech_process();
  126. info7.id = 8888888888;
  127. info7.mysql_id = 888888888888888;
  128. info7.tech_id = 111111111111111;
  129. info7.proc_id = 444444444444444;
  130. info7.level = 1;
  131. info7.readytime = 60;
  132. info7.wctype = 3;
  133. info7.lq = 16;
  134. info7.lqt = 10;
  135. info7.wsinuse = 8;
  136. info7.upe = 2;
  137. info7.uph = 0;
  138. info7.ct = 240;
  139. info7.effect_ratio = 0.9m;
  140. info7.nextprocid = 555555555555555;
  141. info7.parentprocid = 111111111111111;
  142. tech_Processes.Add(info7);
  143. //包装4
  144. mo_mes_tech_process info8 = new mo_mes_tech_process();
  145. info8.id = 9999999999;
  146. info8.mysql_id = 999999999999999;
  147. info8.tech_id = 111111111111111;
  148. info8.proc_id = 555555555555555;
  149. info8.level = 1;
  150. info8.readytime = 60;
  151. info8.wctype = 2;
  152. info8.lq = 10;
  153. info8.lqt = 10;
  154. info8.wsinuse = 2;
  155. info8.upe = 2;
  156. info8.uph = 0;
  157. info8.ct = 28;
  158. info8.effect_ratio = 0.9m;
  159. info8.nextprocid = null;
  160. info8.parentprocid = 111111111111111;
  161. tech_Processes.Add(info8);
  162. return tech_Processes;
  163. }
  164. }
  165. }