merge_select.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. package main
  2. func Select(compareStr string, info *Info, compareInfo *ProjectInfo) (res int) {
  3. //没有可对比的项目名称、或项目编号
  4. if compareNoPass[compareStr] {
  5. } else {
  6. switch compareStr {
  7. case "AAA":
  8. res = 3
  9. case "AAB":
  10. res = 3
  11. case "ABA":
  12. res = 3
  13. case "ABB":
  14. if info.LenPTC > 6 || info.LenPC > 6 {
  15. res = 3
  16. } else {
  17. res = 2
  18. }
  19. case "BAA":
  20. if info.LenPN > 10 {
  21. res = 3
  22. } else {
  23. res = 2
  24. }
  25. case "BAB":
  26. if info.LenPN > 10 || info.LenPTC > 6 {
  27. res = 3
  28. } else {
  29. res = 2
  30. }
  31. case "BBA":
  32. if info.LenPN > 10 || info.LenPC > 6 {
  33. res = 3
  34. } else {
  35. res = 2
  36. }
  37. case "BBB":
  38. v := 0
  39. if info.LenPN > 12 {
  40. v++
  41. }
  42. if info.LenPC > 8 {
  43. v++
  44. }
  45. if info.LenPTC > 8 {
  46. v++
  47. }
  48. if v > 1 {
  49. res = 2
  50. } else {
  51. res = 1
  52. }
  53. case "AAD":
  54. res = 3
  55. case "ABD":
  56. // if info.LenPC > 12 || info.LenPN > 16 {
  57. // res = 3
  58. // } else {
  59. // res = 2
  60. // }
  61. res = 2
  62. case "BAD":
  63. // if info.LenPC > 12 || info.LenPN > 16 {
  64. // res = 3
  65. // } else {
  66. // res = 2
  67. // }
  68. res = 2
  69. case "BBD":
  70. if info.LenPC > 12 && info.LenPN > 16 {
  71. res = 2
  72. } else {
  73. res = 1
  74. }
  75. case "ADA":
  76. res = 3
  77. case "ADB":
  78. // if info.LenPTC > 12 || info.LenPN > 16 {
  79. // res = 3
  80. // } else {
  81. // res = 2
  82. // }
  83. res = 2
  84. case "BDA":
  85. // if info.LenPTC > 12 || info.LenPN > 16 {
  86. // res = 3
  87. // } else {
  88. // res = 2
  89. // }
  90. res = 2
  91. case "BDB":
  92. if info.LenPTC > 12 && info.LenPN > 16 {
  93. res = 2
  94. } else {
  95. res = 1
  96. }
  97. case "ADD":
  98. if info.LenPN > 14 {
  99. res = 2
  100. } else {
  101. res = 1
  102. }
  103. case "BDD":
  104. // if info.LenPN > 18 {
  105. // res = 2
  106. // } else {
  107. // res = 1
  108. // }
  109. res = 1
  110. case "DAA":
  111. if info.LenPTC > 12 || info.LenPC > 12 {
  112. res = 3
  113. } else {
  114. res = 2
  115. }
  116. case "DAB":
  117. if info.LenPTC > 12 {
  118. res = 2
  119. } else {
  120. res = 1
  121. }
  122. case "DAD":
  123. if info.LenPTC > 14 {
  124. res = 2
  125. } else {
  126. res = 1
  127. }
  128. case "DBA":
  129. if info.LenPC > 12 {
  130. res = 2
  131. } else {
  132. res = 1
  133. }
  134. case "DBB":
  135. if info.LenPTC > 12 && info.LenPC > 12 {
  136. res = 2
  137. } else {
  138. res = 1
  139. }
  140. case "DBD":
  141. if info.LenPC > 8 {
  142. res = 1
  143. }
  144. case "DDA":
  145. if info.LenPTC > 12 {
  146. res = 2
  147. } else {
  148. res = 1
  149. }
  150. case "DDB":
  151. if info.LenPC > 8 {
  152. res = 1
  153. }
  154. case "ACA":
  155. if info.LenPN > 12 || info.LenPTC > 9 {
  156. res = 2
  157. } else {
  158. res = 1
  159. }
  160. case "ACB":
  161. if info.LenPN > 14 && info.LenPTC > 10 {
  162. res = 2
  163. } else {
  164. res = 1
  165. }
  166. case "BCA":
  167. if info.LenPN > 12 && info.LenPTC > 9 {
  168. res = 2
  169. } else {
  170. res = 1
  171. }
  172. case "BCB":
  173. if info.LenPN > 12 && info.LenPTC > 9 {
  174. res = 2
  175. } else if info.LenPN > 16 || info.LenPTC > 12 {
  176. res = 1
  177. }
  178. case "AAC":
  179. if info.LenPN > 12 || info.LenPC > 9 {
  180. res = 3
  181. } else {
  182. res = 2
  183. }
  184. case "ABC":
  185. if info.LenPN > 14 || info.LenPC > 12 {
  186. res = 2
  187. } else {
  188. res = 1
  189. }
  190. case "BAC":
  191. if info.LenPN > 14 || info.LenPC > 12 {
  192. res = 2
  193. } else {
  194. res = 1
  195. }
  196. case "BBC":
  197. // if info.LenPN > 12 && info.LenPTC > 9 {
  198. // res = 1
  199. // } else {
  200. // res = 1
  201. // }
  202. res = 1
  203. case "ACC":
  204. // if info.LenPC > 4 && len(compareInfo.ProjectCode) > 4 && CheckHanAndNum(info.ProjectCode) && CheckHanAndNum(compareInfo.ProjectCode) {
  205. // //未考虑MPC
  206. // } else if info.LenPN > 16 {
  207. // res = 1
  208. // }
  209. //
  210. res = 1
  211. case "ACD":
  212. //项目编号不一致
  213. res = 1
  214. case "ADC":
  215. res = 1
  216. case "BCC":
  217. //项目编号不一致
  218. res = 1
  219. case "BCD":
  220. //项目编号不一致
  221. if info.LenPC > 4 && len(compareInfo.ProjectCode) > 4 && (!_numreg1.MatchString(info.ProjectCode) && !_numreg1.MatchString(compareInfo.ProjectCode)) {
  222. //未考虑MPC
  223. } else if info.LenPN > 18 && info.LenPC-len([]rune(compareInfo.ProjectCode)) != 0 {
  224. res = 1
  225. }
  226. case "BDC":
  227. if info.LenPN > 18 && info.LenPTC-len([]rune(compareInfo.ProjectCode)) != 0 {
  228. res = 1
  229. }
  230. case "CAA":
  231. if info.LenPC > 10 || info.LenPTC > 10 {
  232. res = 2
  233. } else {
  234. res = 1
  235. }
  236. case "CAB":
  237. if info.LenPC > 10 && info.LenPTC > 10 {
  238. res = 2
  239. } else {
  240. res = 1
  241. }
  242. case "CAC":
  243. res = 1
  244. case "CAD":
  245. res = 1
  246. case "CBA":
  247. res = 1
  248. case "CBB":
  249. res = 1
  250. case "CBC":
  251. res = 1
  252. case "CBD":
  253. res = 1
  254. case "CCA":
  255. res = 1
  256. case "CCB":
  257. //
  258. case "CDA":
  259. res = 1
  260. case "CDB":
  261. res = 1
  262. case "DAC":
  263. res = 1
  264. case "DBC":
  265. res = 1
  266. case "DCA":
  267. res = 1
  268. case "DCB":
  269. res = 1
  270. }
  271. }
  272. return
  273. }