我有下表作为示例。它包含 5 个请求orderId
,每个请求包含一定数量的操作,actionId
其中显示请求的进度:
|ordr| data |
| -- | ----------------------------------------------------------------------------------------- |
| 1 | {"actionId":1,"curNum":1,"maxNum":3,"status":"READY","templateId":4,"errMsg":null} |
| 1 | {"actionId":1,"curNum":1,"maxNum":3,"status":"SUCCESS","templateId":4,"errMsg":null} |
| 1 | {"actionId":2,"curNum":2,"maxNum":3,"status":"READY","templateId":4,"errMsg":null} |
| 1 | {"actionId":2,"curNum":2,"maxNum":3,"status":"SUCCESS","templateId":4,"errMsg":null} |
| 1 | {"actionId":3,"curNum":3,"maxNum":3,"status":"READY","templateId":4,"errMsg":null} |
| 1 | {"actionId":3,"curNum":3,"maxNum":3,"status":"SUCCESS","templateId":4,"errMsg":null} |
| 2 | {"actionId":4,"curNum":1,"maxNum":3,"status":"READY","templateId":5,"errMsg":null} |
| 2 | {"actionId":4,"curNum":1,"maxNum":3,"status":"SUCCESS","templateId":5,"errMsg":null} |
| 2 | {"actionId":5,"curNum":2,"maxNum":3,"status":"READY","templateId":5,"errMsg":null} |
| 2 | {"actionId":5,"curNum":2,"maxNum":3,"status":"SUCCESS","templateId":5,"errMsg":null} |
| 2 | {"actionId":6,"curNum":3,"maxNum":3,"status":"READY","templateId":5,"errMsg":null} |
| 2 | {"actionId":6,"curNum":3,"maxNum":3,"status":"SUCCESS","templateId":5,"errMsg":null} |
| 3 | {"actionId":7,"curNum":1,"maxNum":2,"status":"READY","templateId":6,"errMsg":null} |
| 3 | {"actionId":7,"curNum":1,"maxNum":2,"status":"FAIL","templateId":6,"errMsg":"BAD REQUEST"}|
| 4 | {"actionId":8,"curNum":1,"maxNum":2,"status":"UNKNOWN","templateId":7,"errMsg":null} |
| 4 | {"actionId":8,"curNum":1,"maxNum":2,"status":"UNKNOWN","templateId":7,"errMsg":null} |
| 5 | {"actionId":7,"curNum":1,"maxNum":2,"status":"READY","templateId":6,"errMsg":null} |
| 5 | {"actionId":7,"curNum":1,"maxNum":2,"status":"FAIL","templateId":6,"errMsg":"BAD REQUEST"}|
如何使用 Stream Api 获取如下报告(为了清晰起见,显示在表中):
| TemplateId | TotalRunOrder |SuccessRunOrder | FailRunOrder |FailOrdersInfo |
| ---------- | -------------- | -------------- | --------------|----------------|
| 4 | 1 | 1 | 0 | null |
| 5 | 1 | 1 | 0 | null |
| 6 | 2 | 0 | 2 | [{"OrderId":3,"ErrMsg":"BAD REQUEST"},{"OrderId":5,"ErrMsg":"BAD REQUEST"}]|
| 7 | 0 | 0 | 0 | null |
报告字段如何计算的说明:
TemplateId
- 从现场的初始表中获取data
TotalRunOrder
- 如果其中OrderId
至少有一种状态"READY"
SuccessRunOrder
- 我们在一个中寻找一行OrderId
,curNum=maxNum
如果状态在其中,"SUCCESS"
那么我们认为申请成功FailRunOrder
- 如果其中OrderId
至少有一种状态,"FAIL"
那么我们认为申请失败FailOrdersInfo
- 以数组的形式显示信息,其中我们显示哪些OrderId
失败并显示ErrMsg
错误文本