<div dir="ltr">I managed solving that problem even when there&#39;s more than one skill involved, but now my hard constraint of worktime breaks if I add more worktime than the sum of engineers worktime.<div><br></div><div style>
(8) is the worktime, my workorders all have a worktime of 4 hours, so, I got 32 available hours and 32 hours of workorders to be assigned right? When I stick to this plan, it works:</div><div style><br></div><div style>----Compilation Result----</div>
<div style><div>Solved distribution with 8 work orders and 4 engineers:</div><div>  ID: 104[Skills: (1002) ABC 2]  -  Qwert(8)[Skills: (1002) ABC 2]</div><div>  ID: 103[Skills: (1003) ABC 3]  -  Trewq(8)[Skills: (1003) ABC 3]</div>
<div>  ID: 105[Skills: (1004) ABC 4]  -  Lkjhg(8)[Skills: (1004) ABC 4]</div><div>  ID: 102[Skills: (1002) ABC 2]  -  Qwert(8)[Skills: (1002) ABC 2]</div><div>  ID: 101[Skills: (1001) ABC 1]  -  Poiuy(8)[Skills: (1001) ABC 1]</div>
<div>  ID: 107[Skills: (1004) ABC 4]  -  Lkjhg(8)[Skills: (1004) ABC 4]</div><div>  ID: 106[Skills: (1001) ABC 1]  -  Poiuy(8)[Skills: (1001) ABC 1]</div><div>  ID: 108[Skills: (1003) ABC 3]  -  Trewq(8)[Skills: (1003) ABC 3]</div>
<div>---------------</div><div><br></div><div style>So, if I add another worktime with 4 hours, it messes everything, this is the outcome:</div><div style><br></div><div style><div>Solved distribution with 9 work orders and 4 engineers:</div>
<div>  ID: 104[Skills: (1002) ABC 2]  -  Qwert(8)[Skills: (1002) ABC 2]</div><div>  ID: 103[Skills: (1003) ABC 3]  -  Trewq(8)[Skills: (1003) ABC 3]</div><div>  ID: 105[Skills: (1004) ABC 4]  -  Lkjhg(8)[Skills: (1004) ABC 4]</div>
<div>  ID: 102[Skills: (1002) ABC 2]  -  Qwert(8)[Skills: (1002) ABC 2]</div><div>  ID: 101[Skills: (1001) ABC 1]  -  Poiuy(8)[Skills: (1001) ABC 1]</div><div>  ID: 107[Skills: (1004) ABC 4]  -  Lkjhg(8)[Skills: (1004) ABC 4]</div>
<div>  ID: 106[Skills: (1001) ABC 1]  -  Poiuy(8)[Skills: (1001) ABC 1]</div><div>  ID: 108[Skills: (1003) ABC 3]  -  Trewq(8)[Skills: (1003) ABC 3]</div><div>  ID: 109[Skills: (1003) ABC 3]  -  Trewq(8)[Skills: (1003) ABC 3]</div>
<div><br></div><div>------------</div><div><br></div><div style>to be precise, i don&#39;t know if it is because of worktime or skill</div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/2/19 André Fróes <span dir="ltr">&lt;<a href="mailto:arfmoraes@gmail.com" target="_blank">arfmoraes@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Just one correction, it is sorting correctly when there&#39;s one workorder with a skill, if there&#39;s another workorder with same skill, it doesn&#39;t sort that workorder to that skill.<div>
<br><div>
This is what is happening:</div><div><br></div><div>Workorder skill ABC1   ------------   Engineer skill ABC1</div><div>Workorder skill ABC2   ------------   Engineer skill ABC2<br></div><div>Workorder skill ABC1   ------------   Engineer skill ABC2<br>

</div></div><div><br></div><div>but if there&#39;s only one workorder with one skill it works:</div><div><br></div><div><div>Workorder skill ABC1   ------------   Engineer skill ABC1</div><div>Workorder skill ABC2   ------------   Engineer skill ABC2<br>

</div><div>Workorder skill ABC3   ------------   Engineer skill ABC3</div><div><br></div><div>so, from the second workorder on, with a repeated required skill, it doesn&#39;t sort properly</div></div></div><div class="HOEnZb">
<div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">2013/2/19 André Fróes <span dir="ltr">&lt;<a href="mailto:arfmoraes@gmail.com" target="_blank">arfmoraes@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Hello, since i&#39;m not moving a step from where I am at dsl rule, I&#39;m trying to do it with SimpleScoreCalculator, but the same is happening.<div><br></div><div>------------</div><div><div>public HardAndSoftScore calculateScore(Distributor distributor) {</div>


<div><span style="white-space:pre-wrap">                </span>int hardScore = 0;</div><div><span style="white-space:pre-wrap">                </span>int softScore = 0;</div><div><span style="white-space:pre-wrap">                </span></div><div><span style="white-space:pre-wrap">                </span>for (Engineer e : distributor.getEngineerList()){</div>


<div><span style="white-space:pre-wrap">                        </span>long skill = e.getSkillEngineerList().get(0).getSkill().getId();</div><div><span style="white-space:pre-wrap">                        </span>int requiredWorktime = 0;</div><div><span style="white-space:pre-wrap">                        </span>long requiredSkill = 0l;</div>


<div><span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                        </span>for (WorkOrder o : distributor.getWorkOrderList()){</div>
<div><span style="white-space:pre-wrap">                                </span>if (e.equals(o.getEngineer())){</div><div><span style="white-space:pre-wrap">                                        </span>requiredWorktime += o.getRequiredWorktime();</div><div><span style="white-space:pre-wrap">                                        </span>requiredSkill = o.getRequiredSkills().get(0).getSkill().getId();</div>


<div><span style="white-space:pre-wrap">                                </span>}</div><div><span style="white-space:pre-wrap">                        </span>}</div><div><span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                        </span></div>


<div><span style="white-space:pre-wrap">                        </span>int engineerAvailableTime = e.getWorktime() - requiredWorktime;</div><div><span style="white-space:pre-wrap">                        </span>if (engineerAvailableTime &lt; 0 ){</div><div>
<span style="white-space:pre-wrap">                                </span>hardScore += engineerAvailableTime;</div><div><span style="white-space:pre-wrap">                        </span>}</div><div><span style="white-space:pre-wrap">                        </span></div><div><span style="white-space:pre-wrap">                        </span>if (requiredSkill == skill){</div>


<div><span style="white-space:pre-wrap">                                </span>softScore += requiredSkill;</div><div><span style="white-space:pre-wrap">                        </span>}</div><div><span style="white-space:pre-wrap">                </span>}</div><div><span style="white-space:pre-wrap">                </span>return DefaultHardAndSoftScore.valueOf(hardScore, softScore);</div>


<div><span style="white-space:pre-wrap">        </span>}</div></div><div>------------</div><div><br></div><div>wouldn&#39;t that have to fit since i&#39;m comparing the 1st attribute of each skill list from engineers and workorders? And how can I weight which engineer would be better to a determined workorder if the workorder have more skills and so does the engineer?</div>


</div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>