Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // From midnight forward.
- const resetArray = [
- { occupancy: 32, receivedTime: 1515614058833 },
- { occupancy: 50, receivedTime: 1515614127933 }
- ];
- let occupancy = 0;
- let ins = 0;
- let outs = 0;
- function kpiFilter(messages) {
- messages.forEach((message, i) => {
- const nextMessage = messages[i + 1] || message;
- let reset;
- resetArray.forEach(resetRecord => {
- if (
- resetRecord.receivedTime >= message.receivedTime &&
- resetRecord.receivedTime <= nextMessage.receivedTime
- ) {
- reset = resetRecord;
- }
- });
- // A reset record is found close to these dates.
- if (reset) {
- // Add the current message's ins/outs first (looks the same as below)
- if (message.action === 'IN') {
- ins++;
- } else if (message.action === 'OUT') {
- outs++;
- }
- const offset = reset.occupancy - occupancy;
- // Now do the reset calculation
- if (offset > 0) {
- ins += offset;
- } else {
- outs += offset;
- }
- occupancy = ins - outs;
- } else {
- if (message.action === 'IN') {
- ins++;
- } else if (message.action === 'OUT') {
- outs++;
- }
- occupancy = ins - outs;
- }
- });
- console.log('INS: ', ins);
- console.log('OUTS: ', outs);
- console.log('OCCUPANCY: ', occupancy);
- return {
- deploymentId: messages[0].deploymentId,
- occupancy: occupancy,
- availability: 200 - occupancy,
- turnover: ins / 200,
- utilization: occupancy / 200
- };
- }
Add Comment
Please, Sign In to add comment