Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. def insideETL(keyname; arrayname; cond; result):
  2. def etl:
  3. . as $parent
  4. | .[arrayname][]
  5. | { parent: $parent, child: .}
  6. | select(cond) | result;
  7.  
  8. map ( .
  9. +
  10. {(keyname): map(etl)}
  11. )
  12. ;
  13.  
  14. def etl(keyname; arrayname; cond; result):
  15. def etl:
  16. . as $parent
  17. | .[arrayname][]
  18. | { parent: $parent, child: .}
  19. | select(cond) | result;
  20.  
  21. {(keyname): map(etl)}
  22. ;
  23.  
  24. ## Invocation:
  25. etl("conflictsInPeriod";
  26. "events";
  27. ( (.parent.workorder.startDate | dateDaysAgo(12*7) ) < .child.endDate)
  28. and
  29. (.child.vendorId == .parent.workorder.vendorId);
  30. {
  31. event: .child.id,
  32. wo_sd: .parent.workorder.startDate[:10],
  33. workorder_id: .parent.workorder.id
  34. }
  35. )
  36.  
  37. [
  38. {
  39. "storeId": "s2",
  40. "storehouseInfo": {
  41. "id": "025453",
  42. "name": "00211 NW, OR",
  43. "maxPallets": 10
  44. },
  45. "workorder":{
  46. "id": "w2s2",
  47. "startDate": "2019-09-06T10:00:00.000Z",
  48. "vendorId":"v2"
  49. },
  50. "events": [
  51. {
  52. "id": "e4",
  53. "storeId": "s2",
  54. "vendorId": "v1",
  55. "startDate": "2019-09-05T10:00:00.000Z",
  56. "endDate": "2019-09-14T00:00:00.000Z",
  57. "palletsUsed": 5
  58. },
  59. {
  60. "id": "e5",
  61. "storeId": "s2",
  62. "vendorId": "v2",
  63. "startDate": "2019-09-05T00:00:00.000Z",
  64. "endDate": "2019-09-14T00:00:00.000Z",
  65. "palletsUsed": 5
  66. },
  67. {
  68. "id": "e10",
  69. "storeId": "s2",
  70. "vendorId": "v1",
  71. "startDate": "2019-09-06T10:00:00.000Z",
  72. "endDate": "2019-09-14T00:00:00.000Z",
  73. "palletsUsed": 5
  74. },
  75. {
  76. "id": "e11",
  77. "storeId": "s2",
  78. "vendorId": "v2",
  79. "startDate": "2019-09-06T00:00:00.000Z",
  80. "endDate": "2019-09-14T00:00:00.000Z",
  81. "palletsUsed": 5
  82. },
  83. {
  84. "id": "e12",
  85. "storeId": "s2",
  86. "vendorId": "v2",
  87. "startDate": "2019-09-06T10:00:00.000Z",
  88. "endDate": "2019-09-14T00:00:00.000Z",
  89. "palletsUsed": 5
  90. }
  91. ]
  92. },
  93. ]
  94.  
  95. .|
  96. etl("conflictsInPeriod";
  97. "events";
  98. ( (.parent.workorder.startDate | dateDaysAgo(12*7) ) < .child.endDate)
  99. and
  100. (.child.vendorId == .parent.workorder.vendorId);
  101. {
  102. event: .child.id,
  103. wo_sd: .parent.workorder.startDate[:10],
  104. workorder_id: .parent.workorder.id
  105. }
  106. )
  107.  
  108. [
  109. {
  110. "conflictsInPeriod":[
  111. {
  112. "event":"e5",
  113. "workorder_sd":"2019-09-06",
  114. "workorder_id":"w2s2"
  115. },
  116. {
  117. "event_id":"e11",
  118. "workorder_sd":"2019-09-06",
  119. "workorder_id":"w2s2"
  120. },
  121. {
  122. "event_id":"e12",
  123. "workorder_sd":"2019-09-06",
  124. "workorder_id":"w2s2"
  125. }
  126. ],
  127. "storeId":"s2",
  128. "storehouseInfo":{
  129. "id":"025453",
  130. "name":"00211 NW, OR",
  131. "maxPallets":10
  132. },
  133. "workorder":{
  134. "id":"w2s2",
  135. "startDate":"2019-09-06T10:00:00.000Z",
  136. "vendorId":"v2"
  137. },
  138. "events":[
  139. {
  140. "id":"e4",
  141. "storeId":"s2",
  142. "vendorId":"v1",
  143. "startDate":"2019-09-05T10:00:00.000Z",
  144. "endDate":"2019-09-14T00:00:00.000Z",
  145. "palletsUsed":5
  146. },
  147. ... All the other data
  148.  
  149. ]
  150. }
  151. ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement