add takt time and simplify simulation getters
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
import { Strategy } from '@/modules/lean/strategy'
|
||||
import { useSimulationStore } from '@/modules/simulation/simulation-store'
|
||||
|
||||
const simulationStore = useSimulationStore()
|
||||
|
||||
const strategies: Strategy[] = ['push', 'pull', 'push-dps', 'pull-dps']
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -16,56 +19,35 @@ const simulationStore = useSimulationStore()
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>push</th>
|
||||
<th>pull</th>
|
||||
<th>pull and DPS</th>
|
||||
<th>push and DPS</th>
|
||||
<th class="numeric">push</th>
|
||||
<th class="numeric">pull</th>
|
||||
<th class="numeric">pull and DPS</th>
|
||||
<th class="numeric">push and DPS</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>lead time</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPushLeadTime }}
|
||||
<td class="numeric" v-for="strategy in strategies" :key="strategy">
|
||||
{{ simulationStore.meanLeadTime(strategy) }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPullLeadTime }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPullDPSLeadTime }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPushDPSLeadTime }}
|
||||
</tr>
|
||||
<tr>
|
||||
<td>takt time</td>
|
||||
<td class="numeric" v-for="strategy in strategies" :key="strategy">
|
||||
{{ simulationStore.meanTaktTime(strategy) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Complexity</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPushComplexity }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPullComplexity }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPullDPSComplexity }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPushDPSComplexity }}
|
||||
<td class="numeric" v-for="strategy in strategies" :key="strategy">
|
||||
{{ simulationStore.meanComplexity(strategy) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Quality issue</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPushQuality }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPullQuality }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPullDPSQuality }}
|
||||
</td>
|
||||
<td class="numeric">
|
||||
{{ simulationStore.meanPushDPSQuality }}
|
||||
<td class="numeric" v-for="strategy in strategies" :key="strategy">
|
||||
{{ simulationStore.meanQuality(strategy) }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -76,9 +58,13 @@ const simulationStore = useSimulationStore()
|
||||
<style scoped lang="scss">
|
||||
.simulation-dashboard {
|
||||
color: var(--primary-color);
|
||||
|
||||
table {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
td.numeric {
|
||||
.numeric {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { featureSteps } from '@/modules/feature/feature-steps'
|
||||
import { Strategy } from '@/modules/lean/strategy'
|
||||
import { Dashboard, Meta } from '@/store-type'
|
||||
import { getRound } from '@/utils'
|
||||
import { getRound, sumElements } from '@/utils'
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
// Get features done per day to plot it
|
||||
|
||||
type Mean = {
|
||||
leadTimeSum: number
|
||||
taktTimeSum: number
|
||||
complexitySum: number
|
||||
qualityIssueSum: number
|
||||
simulations: number
|
||||
@@ -22,6 +23,7 @@ type State = {
|
||||
|
||||
const newMean = (): Mean => ({
|
||||
leadTimeSum: 0,
|
||||
taktTimeSum: 0,
|
||||
complexitySum: 0,
|
||||
qualityIssueSum: 0,
|
||||
simulations: 0
|
||||
@@ -33,7 +35,8 @@ const instance = new ComlinkWorker<typeof import('../feature/feature-board')>(
|
||||
|
||||
const resetMeta = (): Meta => ({
|
||||
totalDays: 0,
|
||||
daysWithProblemSolving: 0,
|
||||
teamWorkExperience: 0,
|
||||
featuresDonePerDay: [],
|
||||
strategy: {
|
||||
push: 0,
|
||||
pull: 0,
|
||||
@@ -95,6 +98,10 @@ export const useSimulationStore = defineStore('dashboard', {
|
||||
|
||||
this.newDashboard(dashboard)
|
||||
this.mean[strategy].leadTimeSum += dashboard.analysis.meanLeadTime
|
||||
// todo: set directly the number of features
|
||||
this.mean[strategy].taktTimeSum +=
|
||||
dashboard.meta.totalDays /
|
||||
sumElements(dashboard.meta.featuresDonePerDay)
|
||||
this.mean[strategy].complexitySum += dashboard.analysis.meanComplexity
|
||||
this.mean[strategy].qualityIssueSum += dashboard.analysis.meanQualityIssue
|
||||
this.mean[strategy].simulations++
|
||||
@@ -115,71 +122,25 @@ export const useSimulationStore = defineStore('dashboard', {
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
meanPushLeadTime: (state) => {
|
||||
return getRound(state.mean.push.leadTimeSum, state.mean.push.simulations)
|
||||
},
|
||||
meanPullLeadTime: (state) => {
|
||||
return getRound(state.mean.pull.leadTimeSum, state.mean.pull.simulations)
|
||||
},
|
||||
meanPullDPSLeadTime: (state) => {
|
||||
return getRound(
|
||||
state.mean['pull-dps'].leadTimeSum,
|
||||
state.mean['pull-dps'].simulations
|
||||
meanLeadTime: (state) => (strategy: Strategy) =>
|
||||
getRound(
|
||||
state.mean[strategy].leadTimeSum,
|
||||
state.mean[strategy].simulations
|
||||
),
|
||||
meanTaktTime: (state) => (strategy: Strategy) =>
|
||||
getRound(
|
||||
state.mean[strategy].taktTimeSum,
|
||||
state.mean[strategy].simulations
|
||||
),
|
||||
meanComplexity: (state) => (strategy: Strategy) =>
|
||||
getRound(
|
||||
state.mean[strategy].complexitySum,
|
||||
state.mean[strategy].simulations
|
||||
),
|
||||
meanQuality: (state) => (strategy: Strategy) =>
|
||||
getRound(
|
||||
state.mean[strategy].qualityIssueSum,
|
||||
state.mean[strategy].simulations
|
||||
)
|
||||
},
|
||||
meanPushDPSLeadTime: (state) => {
|
||||
return getRound(
|
||||
state.mean['push-dps'].leadTimeSum,
|
||||
state.mean['push-dps'].simulations
|
||||
)
|
||||
},
|
||||
meanPushComplexity: (state) => {
|
||||
return getRound(
|
||||
state.mean.push.complexitySum,
|
||||
state.mean.push.simulations
|
||||
)
|
||||
},
|
||||
meanPullComplexity: (state) => {
|
||||
return getRound(
|
||||
state.mean.pull.complexitySum,
|
||||
state.mean.pull.simulations
|
||||
)
|
||||
},
|
||||
meanPullDPSComplexity: (state) => {
|
||||
return getRound(
|
||||
state.mean['pull-dps'].complexitySum,
|
||||
state.mean['pull-dps'].simulations
|
||||
)
|
||||
},
|
||||
meanPushDPSComplexity: (state) => {
|
||||
return getRound(
|
||||
state.mean['push-dps'].complexitySum,
|
||||
state.mean['push-dps'].simulations
|
||||
)
|
||||
},
|
||||
meanPushQuality: (state) => {
|
||||
return getRound(
|
||||
state.mean.push.qualityIssueSum,
|
||||
state.mean.push.simulations
|
||||
)
|
||||
},
|
||||
meanPullQuality: (state) => {
|
||||
return getRound(
|
||||
state.mean.pull.qualityIssueSum,
|
||||
state.mean.pull.simulations
|
||||
)
|
||||
},
|
||||
meanPullDPSQuality: (state) => {
|
||||
return getRound(
|
||||
state.mean['pull-dps'].qualityIssueSum,
|
||||
state.mean['pull-dps'].simulations
|
||||
)
|
||||
},
|
||||
meanPushDPSQuality: (state) => {
|
||||
return getRound(
|
||||
state.mean['push-dps'].qualityIssueSum,
|
||||
state.mean['push-dps'].simulations
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user