OrderStatisticsQueryBuilder.groovy 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. import com.dderp.common.datas.ESKeys
  2. import com.dderp.common.datas.OrderLifeCycleNode
  3. import com.dySweetFishPlugin.tool.lang.DateUtil
  4. import org.apache.lucene.search.join.ScoreMode
  5. import org.elasticsearch.index.query.BoolQueryBuilder
  6. import org.elasticsearch.index.query.InnerHitBuilder
  7. import org.elasticsearch.index.query.QueryBuilder
  8. import org.elasticsearch.index.query.QueryBuilders
  9. import org.elasticsearch.join.query.JoinQueryBuilders
  10. import java.time.Instant
  11. import java.time.LocalDate
  12. import java.time.ZoneId
  13. /**
  14. * Created by jlutt on 2021-05-08
  15. *
  16. * @author jlutt
  17. */
  18. enum OrderStatisticsQueryBuilder {
  19. //待审核
  20. A1{
  21. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  22. BoolQueryBuilder q = QueryBuilders.boolQuery()
  23. .must(JoinQueryBuilders.hasChildQuery(
  24. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  25. QueryBuilders.boolQuery()
  26. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.CREATE.getValue()))
  27. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  28. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  29. ScoreMode.None)
  30. )
  31. .mustNot(JoinQueryBuilders.hasChildQuery(
  32. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  33. QueryBuilders.boolQuery()
  34. .must(QueryBuilders.rangeQuery("lifeNodeId").gt(OrderLifeCycleNode.CREATE.getValue()))
  35. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  36. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  37. ScoreMode.None)
  38. )
  39. if (checkPermission) {
  40. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  41. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  42. }
  43. }
  44. return q
  45. }
  46. },
  47. //文件待处理
  48. A2{
  49. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  50. BoolQueryBuilder q = QueryBuilders.boolQuery()
  51. .must(JoinQueryBuilders.hasChildQuery(
  52. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  53. QueryBuilders.boolQuery()
  54. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.VERIFY.getValue()))
  55. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  56. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  57. ScoreMode.None)
  58. )
  59. .mustNot(JoinQueryBuilders.hasChildQuery(
  60. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  61. QueryBuilders.boolQuery()
  62. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.IMAGE_DESIGN.getValue()))
  63. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  64. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  65. ScoreMode.None)
  66. )
  67. if (checkPermission) {
  68. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  69. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  70. }
  71. }
  72. return q
  73. }
  74. },
  75. //待组版
  76. A3{
  77. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  78. BoolQueryBuilder q = QueryBuilders.boolQuery()
  79. .must(JoinQueryBuilders.hasChildQuery(
  80. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  81. QueryBuilders.boolQuery()
  82. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.VERIFY.getValue()))
  83. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  84. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  85. ScoreMode.None)
  86. )
  87. .mustNot(JoinQueryBuilders.hasChildQuery(
  88. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  89. QueryBuilders.boolQuery()
  90. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.COMPOSE_PLATE.getValue()))
  91. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  92. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  93. ScoreMode.None)
  94. )
  95. if (checkPermission) {
  96. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  97. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  98. }
  99. }
  100. return q
  101. }
  102. },
  103. //待排产
  104. A4{
  105. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  106. BoolQueryBuilder q = QueryBuilders.boolQuery()
  107. .must(JoinQueryBuilders.hasChildQuery(
  108. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  109. QueryBuilders.boolQuery()
  110. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.TRANSMITTED.getValue()))
  111. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  112. // .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.COMPOSE_PLATE.getValue()))
  113. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  114. ScoreMode.None)
  115. )
  116. .mustNot(JoinQueryBuilders.hasChildQuery(
  117. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  118. QueryBuilders.boolQuery()
  119. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.PLANNED.getValue()))
  120. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  121. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  122. ScoreMode.None)
  123. )
  124. if (readCycle) {
  125. q = q.must(JoinQueryBuilders.hasChildQuery(
  126. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  127. QueryBuilders.boolQuery()
  128. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.COMPOSE_PLATE.getValue()))
  129. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  130. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  131. ScoreMode.None).innerHit(new InnerHitBuilder().setSize(10000)))
  132. }
  133. if (checkPermission) {
  134. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  135. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  136. }
  137. }
  138. return q
  139. }
  140. },
  141. //待拼版
  142. A5{
  143. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  144. BoolQueryBuilder q = QueryBuilders.boolQuery()
  145. .must(JoinQueryBuilders.hasChildQuery(
  146. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  147. QueryBuilders.boolQuery()
  148. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.TRANSMITTED.getValue()))
  149. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  150. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  151. ScoreMode.None)
  152. )
  153. .mustNot(JoinQueryBuilders.hasChildQuery(
  154. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  155. QueryBuilders.boolQuery()
  156. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.PDF_PLATED.getValue()))
  157. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  158. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  159. ScoreMode.None)
  160. )
  161. if (checkPermission) {
  162. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  163. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  164. }
  165. }
  166. return q
  167. }
  168. },
  169. A6{
  170. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  171. BoolQueryBuilder q = QueryBuilders.boolQuery()
  172. .must(JoinQueryBuilders.hasChildQuery(
  173. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  174. QueryBuilders.boolQuery()
  175. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.TRANSMITTED.getValue()))
  176. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  177. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  178. ScoreMode.None)
  179. )
  180. .mustNot(JoinQueryBuilders.hasChildQuery(
  181. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  182. QueryBuilders.boolQuery()
  183. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.PS_MAKE.getValue()))
  184. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  185. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  186. ScoreMode.None)
  187. )
  188. if (checkPermission) {
  189. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  190. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  191. }
  192. }
  193. return q
  194. }
  195. },
  196. A7{
  197. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  198. BoolQueryBuilder q = QueryBuilders.boolQuery()
  199. .must(JoinQueryBuilders.hasChildQuery(
  200. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  201. QueryBuilders.boolQuery()
  202. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.TRANSMITTED.getValue()))
  203. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  204. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  205. ScoreMode.None)
  206. )
  207. .mustNot(JoinQueryBuilders.hasChildQuery(
  208. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  209. QueryBuilders.boolQuery()
  210. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.STOCK_IN.getValue()))
  211. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  212. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  213. ScoreMode.None)
  214. )
  215. if (checkPermission) {
  216. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  217. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  218. }
  219. }
  220. return q
  221. }
  222. },
  223. A8{
  224. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  225. BoolQueryBuilder q = QueryBuilders.boolQuery()
  226. .must(JoinQueryBuilders.hasChildQuery(
  227. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  228. QueryBuilders.boolQuery()
  229. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.TRANSMITTED.getValue()))
  230. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  231. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  232. ScoreMode.None)
  233. )
  234. .mustNot(JoinQueryBuilders.hasChildQuery(
  235. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  236. QueryBuilders.boolQuery()
  237. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.PRINTED.getValue()))
  238. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  239. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  240. ScoreMode.None)
  241. )
  242. if (checkPermission) {
  243. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  244. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  245. }
  246. }
  247. return q
  248. }
  249. },
  250. A9{
  251. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  252. BoolQueryBuilder q = QueryBuilders.boolQuery()
  253. .must(JoinQueryBuilders.hasChildQuery(
  254. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  255. QueryBuilders.boolQuery()
  256. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.TRANSMITTED.getValue()))
  257. .must(QueryBuilders.rangeQuery("lifeNodeState").gt(0))
  258. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  259. ScoreMode.None)
  260. )
  261. .mustNot(JoinQueryBuilders.hasChildQuery(
  262. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  263. QueryBuilders.boolQuery()
  264. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.PREPARED.getValue()))
  265. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  266. ScoreMode.None)
  267. )
  268. if (checkPermission) {
  269. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  270. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  271. }
  272. }
  273. return q
  274. }
  275. },
  276. A10{
  277. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  278. BoolQueryBuilder q = QueryBuilders.boolQuery()
  279. .must(JoinQueryBuilders.hasChildQuery(
  280. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  281. QueryBuilders.boolQuery()
  282. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.OUT_ASSIST_WAIT.getValue()))
  283. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  284. ScoreMode.None)
  285. )
  286. .mustNot(JoinQueryBuilders.hasChildQuery(
  287. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  288. QueryBuilders.boolQuery()
  289. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.OUT_ASSIST_COMPLETED.getValue()))
  290. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  291. ScoreMode.None)
  292. )
  293. if (checkPermission) {
  294. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  295. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  296. }
  297. }
  298. return q
  299. }
  300. },
  301. A11{
  302. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  303. BoolQueryBuilder q = QueryBuilders.boolQuery()
  304. .must(JoinQueryBuilders.hasChildQuery(
  305. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  306. QueryBuilders.boolQuery()
  307. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.VERIFY.getValue()))
  308. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  309. ScoreMode.None)
  310. )
  311. .mustNot(JoinQueryBuilders.hasChildQuery(
  312. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  313. QueryBuilders.boolQuery()
  314. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.STOCK_IN.getValue()))
  315. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  316. ScoreMode.None)
  317. )
  318. if (checkPermission) {
  319. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  320. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  321. }
  322. }
  323. return q
  324. }
  325. },
  326. A12{
  327. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  328. BoolQueryBuilder q = QueryBuilders.boolQuery()
  329. .must(JoinQueryBuilders.hasChildQuery(
  330. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  331. QueryBuilders.boolQuery()
  332. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.STOCK_IN.getValue()))
  333. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  334. ScoreMode.None)
  335. )
  336. .mustNot(JoinQueryBuilders.hasChildQuery(
  337. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  338. QueryBuilders.boolQuery()
  339. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.SEND.getValue()))
  340. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  341. ScoreMode.None)
  342. )
  343. if (checkPermission) {
  344. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  345. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  346. }
  347. }
  348. return q
  349. }
  350. },
  351. A13{
  352. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  353. long lastStartTime = DateUtil.getStartOfDay(Date.from(LocalDate.now().plusDays(-1).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant())).getTime()
  354. long lastEndTime = DateUtil.getEndOfDay(Date.from(LocalDate.now().plusDays(-1).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant())).getTime()
  355. BoolQueryBuilder q = QueryBuilders.boolQuery()
  356. if (readCycle) {
  357. q = q.must(QueryBuilders.rangeQuery("createTimeLong").gte(lastStartTime).lte(lastEndTime))
  358. .should(JoinQueryBuilders.hasChildQuery(
  359. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  360. QueryBuilders.boolQuery()
  361. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.COMPOSE_PLATE.getValue()))
  362. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  363. ScoreMode.None).innerHit(new InnerHitBuilder().setSize(10000)))
  364. } else {
  365. q = q.must(QueryBuilders.rangeQuery("createTimeLong").gte(lastStartTime).lte(lastEndTime))
  366. }
  367. if (checkPermission) {
  368. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  369. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  370. }
  371. }
  372. return q
  373. }
  374. },
  375. A14{
  376. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  377. long curStartTime = DateUtil.getStartOfDay(Date.from(Instant.now())).getTime()
  378. long curEndTime = DateUtil.getEndOfDay(Date.from(Instant.now())).getTime()
  379. BoolQueryBuilder q = QueryBuilders.boolQuery()
  380. if (readCycle) {
  381. q = q.must(QueryBuilders.rangeQuery("createTimeLong").gte(curStartTime).lte(curEndTime))
  382. .should(JoinQueryBuilders.hasChildQuery(
  383. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  384. QueryBuilders.boolQuery()
  385. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.COMPOSE_PLATE.getValue()))
  386. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  387. ScoreMode.None).innerHit(new InnerHitBuilder().setSize(10000)))
  388. } else {
  389. q = q.must(QueryBuilders.rangeQuery("createTimeLong").gte(curStartTime).lte(curEndTime))
  390. }
  391. if (checkPermission) {
  392. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  393. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  394. }
  395. }
  396. return q
  397. }
  398. },
  399. A15{
  400. QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle) {
  401. BoolQueryBuilder q = QueryBuilders.boolQuery()
  402. .must(JoinQueryBuilders.hasChildQuery(
  403. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  404. QueryBuilders.boolQuery()
  405. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.CREATE.getValue()))
  406. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  407. ScoreMode.None)
  408. )
  409. .mustNot(JoinQueryBuilders.hasChildQuery(
  410. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  411. QueryBuilders.boolQuery()
  412. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.SEND.getValue()))
  413. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  414. ScoreMode.None)
  415. )
  416. if (readCycle) {
  417. q = q.should(JoinQueryBuilders.hasChildQuery(
  418. ESKeys.ES_ERP_ORDER_LIFECYCLE_TYPE,
  419. QueryBuilders.boolQuery()
  420. .must(QueryBuilders.termQuery("lifeNodeId", OrderLifeCycleNode.COMPOSE_PLATE.getValue()))
  421. .must(QueryBuilders.termQuery("voidMasterFlag", 0)),
  422. ScoreMode.None).innerHit(new InnerHitBuilder().setSize(10000)))
  423. }
  424. if (checkPermission) {
  425. if ((permissionIds != null) && (!permissionIds.isEmpty())) {
  426. q = q.must(QueryBuilders.termsQuery("createBy", permissionIds.toArray()))
  427. }
  428. }
  429. return q
  430. }
  431. };
  432. abstract QueryBuilder apply(List<Long> permissionIds, boolean checkPermission, boolean readCycle);
  433. }