我必须根据汇总数组中的现金/ dd /支票收据计数和现金/ dd /支票总和等条件编写一些转换和计算。我已经定义了输入数组,并在此基础上期待已定义的输出。帮助我完成该操作的数据编织。\
代码:
%dw 2.0
output application/json
---
{
receipt: payload map ( payload01 , indexOfPayload01 ) -> {
receiptId: payload01.receiptId,
amountCollected: payload01.amountCollected,
paymentMode: payload01.paymentMode,
},
summary: {
TotalamountCollected: payload.*amountCollected reduce ((val, acc=0) -> acc + val)
}
}
输入:
[{
"receiptId": 11000134453,
"amountCollected": 11,
"paymentMode": "Cash"
}, {
"receiptId": 1105444723,
"amountCollected": 12,
"paymentMode": "Cheque"
}, {
"receiptId": 1143434763,
"amountCollected": 13,
"paymentMode": "DD"
},{
"receiptId": 11000134457,
"amountCollected": 14,
"paymentMode": "Cash"
}, {
"receiptId": 1105444728,
"amountCollected": 15,
"paymentMode": "Cheque"
}, {
"receiptId": 1143434769,
"amountCollected": 16,
"paymentMode": "DD"
}]
输出:
{
"summary": {
"TotalamountCollected": 81,
"cashRecepit": 2,
"cashRecepitAmount": 25,
"chequeRecepit": 2,
"chequeRecepitAmount": 27,
"ddRecepit": 2,
"ddRecepitAmount": 29
},
"receipt": [{
"receiptId": 11000134453,
"amountCollected": 11,
"paymentMode": "Cash"
}, {
"receiptId": 1105444723,
"amountCollected": 12,
"paymentMode": "Cheque"
}, {
"receiptId": 1143434763,
"amountCollected": 13,
"paymentMode": "DD"
},{
"receiptId": 11000134457,
"amountCollected": 14,
"paymentMode": "Cash"
}, {
"receiptId": 1105444728,
"amountCollected": 15,
"paymentMode": "Cheque"
}, {
"receiptId": 1143434769,
"amountCollected": 16,
"paymentMode": "DD"
}]
}
这里是一个涉及对输入进行一次迭代的解决方案。我很好奇是否有人有更清洁的解决方案。