<div dir="ltr">Sure. My sorting by worktime and skills is partially working, if I do my planning with a certain number of engineers/workorders that fits in each other, it works perfectly, If i overcome that, it breaks the planning, it keeps showing the data that shouldn&#39;t be displayed and, in consequence, breaks the optimal solution.<div>
<br></div><div style>Example:</div><div style>Engineer Andre, WT(8 hours), Skills ABC1, ABC2</div><div style><br></div><div style>Workorder 1, required WT(2), required Skills ABC2</div><div style>Workorder 2, required WT(3), required Skills ABC2<br>
</div><div style>Workorder 3, required WT(1), required Skills ABC1<br></div><div style><br></div><div style>with these 3 WO it should work perfectly, results:</div><div style><div>ID: 104[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Feasible(0)</div>
<div>ID: 105[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Feasible(0)</div><div>ID: 106[Skills: ABC 1,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Feasible(0)</div></div><div style><br></div><div style>Adding this workorder that exceed in time and skill</div>
<div style><br></div><div style>Workorder 1, required WT(5), required Skills ABC2, ABC3<br></div><div style><br></div><div style>this is the outcome:</div><div style><br></div><div style><div>ID: 104[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Feasible(0)</div>
<div>ID: 105[Skills: ABC 2,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Feasible(0)</div><div>ID: 107[Skills: ABC 1,ABC 3,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Broken(1)</div><div>ID: 106[Skills: ABC 1,]   -   Andre(8)[Skills: ABC 1,ABC 2,] ------ Feasible(0)</div>
<div><br></div><div style>it shows all not excluding the workorder that is not to be assigned to engineer. I did it by simplescorecalculator:</div><div style><br></div><div style><div><span class="" style="white-space:pre">        </span>public HardAndSoftScore calculateScore(Distributor distributor) {</div>
<div><span class="" style="white-space:pre">                </span>int hardScore = 0;</div><div><span class="" style="white-space:pre">                </span>int softScore = 0;</div><div><br></div><div><span class="" style="white-space:pre">                </span>for (Engineer e : distributor.getEngineerList()) {</div>
<div><span class="" style="white-space:pre">                        </span>int requiredWorktime = 0;</div><div><span class="" style="white-space:pre">                        </span>List&lt;Skill&gt; requiredSkillList = new ArrayList&lt;Skill&gt;();</div><div><br>
</div><div><span class="" style="white-space:pre">                        </span>for (WorkOrder o : distributor.getWorkOrderList()) {</div><div><span class="" style="white-space:pre">                                </span>if (e.equals(o.getEngineer())) {</div><div><span class="" style="white-space:pre">                                        </span>requiredWorktime += o.getRequiredWorktime();</div>
<div><span class="" style="white-space:pre">                                        </span>for (SkillWorkOrder swo : o.getRequiredSkills()) {</div><div><span class="" style="white-space:pre">                                                </span>requiredSkillList.add(swo.getSkill());</div><div><span class="" style="white-space:pre">                                        </span>}</div>
<div><span class="" style="white-space:pre">                                </span>}</div><div><span class="" style="white-space:pre">                        </span>}</div><div><br></div><div><span class="" style="white-space:pre">                        </span>int engineerAvailableTime = e.getWorktime() - requiredWorktime;</div>
<div><span class="" style="white-space:pre">                        </span>if (engineerAvailableTime &lt; 0) {</div><div><span class="" style="white-space:pre">                                </span>hardScore += engineerAvailableTime;</div><div><span class="" style="white-space:pre">                        </span>}</div>
<div><br></div><div><span class="" style="white-space:pre">                        </span>List&lt;Skill&gt; tempEngSkillList = new ArrayList&lt;Skill&gt;();</div><div><span class="" style="white-space:pre">                        </span>for (SkillEngineer se : e.getSkillEngineerList()){</div>
<div><span class="" style="white-space:pre">                                </span>tempEngSkillList.add(se.getSkill());</div><div><span class="" style="white-space:pre">                        </span>}</div><div><span class="" style="white-space:pre">                        </span></div><div>
<span class="" style="white-space:pre">                        </span>if (tempEngSkillList.containsAll(requiredSkillList)){</div><div><span class="" style="white-space:pre">                                </span>hardScore += 1;</div><div><span class="" style="white-space:pre">                        </span>}</div>
<div><span class="" style="white-space:pre">                </span>}</div><div><br></div><div><span class="" style="white-space:pre">                </span>return DefaultHardAndSoftScore.valueOf(hardScore, softScore);</div><div><span class="" style="white-space:pre">        </span>}</div>
</div></div><div style><br></div><div style>that&#39;s the problem happening, after that i&#39;ll start working on priority by the tip you provided in the previous post, but i&#39;ll try by simplescorecalculator to, i&#39;m not getting along (yet) with drools rules system (drl), it&#39;s a bit harder to use it with planner.</div>
<div style><br></div><div style>thanks for the help Geoffrey!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/2/21 Geoffrey De Smet <span dir="ltr">&lt;<a href="mailto:ge0ffrey.spam@gmail.com" target="_blank">ge0ffrey.spam@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 bgcolor="#FFFFFF" text="#000000">
    This thread is a bit long, could you summarize the open problems?<br>
    <br>
    <div>Op 20-02-13 19:22, André Fróes schreef:<br>
    </div>
    <blockquote type="cite"><div><div class="h5">
      <div dir="ltr">I added another variable to check if it would still
        show the broken constraint and break the planner, and it still
        happens, I added this: 
        <div><br>
        </div>
        <div>
          <div>WorkOrder wo33 = new WorkOrder(103l, 8, Priority.P1,
            Nature.CORRECTIVE);</div>
          <div>SkillWorkOrder swo333 = new SkillWorkOrder(20333l, wo33,
            ABC1);</div>
          <div>SkillWorkOrder swo3332 = new SkillWorkOrder(203332l,
            wo33, ABC2);</div>
          <div>SkillWorkOrder swo3333 = new SkillWorkOrder(203333l,
            wo33, ABC3);</div>
          <div>SkillWorkOrder swo3334 = new SkillWorkOrder(203334l,
            wo33, ABC4);</div>
          <div>List&lt;SkillWorkOrder&gt; lswo33 = new
            ArrayList&lt;SkillWorkOrder&gt;();</div>
          <div>lswo33.add(swo333);</div>
          <div>lswo33.add(swo3332);</div>
          <div>lswo33.add(swo3333);</div>
          <div>lswo33.add(swo3334);</div>
          <div>wo33.setRequiredSkills(lswo33);</div>
        </div>
        <div><br>
        </div>
        <div>it breaks in worktime and required skill, and even
          so, it shows there in the result breaking everything T.T</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">2013/2/20 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">Problem solved (still I think so):
              <div><br>
              </div>
              <div>It was simpler (if i&#39;m right):</div>
              <div>--------</div>
              <div>
                <div>List&lt;Skill&gt; tempEngSkillList = new
                  ArrayList&lt;Skill&gt;();</div>
                <div>for (SkillEngineer se : e.getSkillEngineerList()){</div>
                <div><span style="white-space:pre-wrap"> </span>tempEngSkillList.add(se.getSkill());</div>
                <div>}</div>
                <div><span style="white-space:pre-wrap"> </span></div>
                <div>if
                  (tempEngSkillList.containsAll(requiredSkillList)){</div>
                <div><span style="white-space:pre-wrap"> </span>hardScore
                  += 1;</div>
                <div>}</div>
                <div>--------<br>
                </div>
              </div>
              <div><br>
              </div>
              <div>the result:</div>
              <div><br>
              </div>
              <div>
                <div>
                  <div>Solved distribution with 10 work orders and 4
                    engineers:</div>
                </div>
                <div>ID: 104[Skills: ABC 2,]   -   Andre(8)[Skills: ABC
                  1,ABC 2,] ------ Feasible(0)</div>
                <div>
                  <div>
                    ID: 103[Skills: ABC 1,ABC 2,ABC 3,ABC 4,]   -  
                    Denny(8)[Skills: ABC 2,ABC 1,ABC 3,ABC 4,] ------
                    Feasible(0)</div>
                </div>
                <div>ID: 105[Skills: ABC 2,]   -   Andre(8)[Skills: ABC
                  1,ABC 2,] ------ Feasible(0)</div>
                <div>
                  <div>ID: 102[Skills: ABC 2,]   -   Andre(8)[Skills:
                    ABC 1,ABC 2,] ------ Feasible(0)</div>
                  <div>ID: 101[Skills: ABC 1,ABC 2,ABC 4,]   -  
                    Richard(8)[Skills: ABC 1,ABC 2,ABC 4,] ------
                    Feasible(0)</div>
                  <div>ID: 107[Skills: ABC 1,ABC 3,]   -  
                    Fabio(8)[Skills: ABC 3,ABC 1,] ------ Feasible(0)</div>
                </div>
                <div>ID: 106[Skills: ABC 1,]   -   Fabio(8)[Skills: ABC
                  3,ABC 1,] ------ Feasible(0)</div>
                <div>ID: 108[Skills: ABC 1,ABC 4,]   -  
                  Richard(8)[Skills: ABC 1,ABC 2,ABC 4,] ------
                  Feasible(0)</div>
                <div>ID: 109[Skills: ABC 3,]   -   Fabio(8)[Skills: ABC
                  3,ABC 1,] ------ Feasible(0)</div>
                <div>
                  <div>ID: 110[Skills: ABC 1,]   -   Andre(8)[Skills:
                    ABC 1,ABC 2,] ------ Feasible(0)</div>
                </div>
              </div>
            </div>
            <div>
              <div>
                <div class="gmail_extra"><br>
                  <br>
                  <div class="gmail_quote">2013/2/20 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">Not fixed, i threw it on excel and
                        make a comparison with expected results and
                        there are 2 broken there. This is how it would
                        be (feasible solution):
                        <div><br>
                        </div>
                        <div>ID 101 - Engineer Richard</div>
                        <div>
                          ID 102 - Engineer Andre<br>
                        </div>
                        <div>ID 103 - Engineer Denny</div>
                        <div>ID 104 - Engineer Andre</div>
                        <div>ID 105 - Engineer Andre</div>
                        <div>ID 106 - Engineer Andre</div>
                        <div>ID 107 - Engineer Fabio</div>
                        <div>ID 108 - Engineer Richard</div>
                        <div>ID 109 - Engineer Fabio</div>
                        <div>ID 110 - Engineer Fabio</div>
                        <div><br>
                        </div>
                        <div>this was the result:<br>
                          <div><br>
                          </div>
                          <div>
                            <div>Solved distribution with 10 work orders
                              and 4 engineers:</div>
                            <div>ID: 104[Skills: ABC 2,]   -  
                              Richard(8)[Skills: ABC 1,ABC 2,ABC 4,]
                              ------ Feasible(0)</div>
                            <div>ID: 103[Skills: ABC 1,ABC 2,ABC 3,ABC
                              4,]   -   Denny(8)[Skills: ABC 2,ABC 1,ABC
                              3,ABC 4,] ------ Feasible(0)</div>
                            <div>ID: 105[Skills: ABC 2,]   -  
                              Fabio(8)[Skills: ABC 3,ABC 1,] ------
                              Broken(1)</div>
                            <div>ID: 102[Skills: ABC 2,]   -  
                              Andre(8)[Skills: ABC 1,ABC 2,] ------
                              Feasible(0)</div>
                            <div>ID: 101[Skills: ABC 1,ABC 2,ABC 4,]   -
                                Richard(8)[Skills: ABC 1,ABC 2,ABC 4,]
                              ------ Feasible(0)</div>
                            <div>ID: 107[Skills: ABC 1,ABC 3,]   -  
                              Fabio(8)[Skills: ABC 3,ABC 1,] ------
                              Feasible(0)</div>
                            <div>ID: 106[Skills: ABC 1,]   -  
                              Andre(8)[Skills: ABC 1,ABC 2,] ------
                              Feasible(0)</div>
                            <div>ID: 108[Skills: ABC 1,ABC 4,]   -  
                              Andre(8)[Skills: ABC 1,ABC 2,] ------
                              Broken(1)</div>
                            <div>ID: 109[Skills: ABC 3,]   -  
                              Andre(8)[Skills: ABC 1,ABC 2,] ------
                              Broken(1)</div>
                            <div>ID: 110[Skills: ABC 1,]   -  
                              Andre(8)[Skills: ABC 1,ABC 2,] ------
                              Feasible(0)</div>
                          </div>
                        </div>
                        <div><br>
                        </div>
                        <div>Still working on it, I accept any tips :D</div>
                      </div>
                      <div>
                        <div>
                          <div class="gmail_extra"><br>
                            <br>
                            <div class="gmail_quote">2013/2/20 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">I think I fixed it, but
                                  the broken constraint is still
                                  showing, i don&#39;t know how to remove
                                  it. I did this:
                                  <div>
                                    <br>
                                  </div>
                                  <div>verified if the engineer skill
                                    list had the same size or bigger
                                    than the requiredSkillList, iterate
                                    to check skills between both
                                    counting the matches and then, if
                                    the match was 100% to other, give
                                    the workorder</div>
                                  <div><br>
                                  </div>
                                  <div>
                                    <div><span style="white-space:pre-wrap"> </span>if
                                      (e.getSkillEngineerList().size()
                                      &gt;= requiredSkillList.size()) {</div>
                                    <div><span style="white-space:pre-wrap"> </span>int
                                      temp = 0;</div>
                                    <div>
                                      <div><span style="white-space:pre-wrap">
                                        </span>for (SkillEngineer se :
                                        e.getSkillEngineerList()) {</div>
                                      <div><span style="white-space:pre-wrap">
                                        </span>for (Skill s :
                                        requiredSkillList) {</div>
                                      <div><span style="white-space:pre-wrap">
                                        </span>if (se.getSkill().getId()
                                        == s.getId()) {</div>
                                    </div>
                                    <div><span style="white-space:pre-wrap"> </span>temp++;</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>if
                                      (temp == requiredSkillList.size())
                                      {</div>
                                    <div><span style="white-space:pre-wrap"> </span>hardScore
                                      += 1;</div>
                                    <div><span style="white-space:pre-wrap"> </span>}</div>
                                    <div><span style="white-space:pre-wrap"> </span>}</div>
                                  </div>
                                </div>
                                <div>
                                  <div>
                                    <div class="gmail_extra"><br>
                                      <br>
                                      <div class="gmail_quote">2013/2/20
                                        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">After some
                                            workaround I noticed that
                                            the workorders are not being
                                            100% corretly distributed
                                            to, i&#39;ve changed the
                                            scorecalculator to this:
                                            <div>
                                              <br>
                                            </div>
                                            <div>
                                              <div><span style="white-space:pre-wrap">
                                                </span>int
                                                commonSkillCount = 0;</div>
                                              <div><span style="white-space:pre-wrap">
                                                </span>for (Skill s :
                                                requiredSkillList){</div>
                                              <div><span style="white-space:pre-wrap">
                                                </span>for
                                                (SkillEngineer se :
                                                e.getSkillEngineerList()){</div>
                                              <div>
                                                <div><span style="white-space:pre-wrap">
                                                  </span>if
                                                  (se.getSkill().getId()
                                                  == s.getId()){</div>
                                                <div><span style="white-space:pre-wrap">
                                                  </span>commonSkillCount++;</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>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div>
                                              <div><span style="white-space:pre-wrap">
                                                </span>if
                                                ((commonSkillCount -
                                                e.getSkillEngineerList().size())
                                                &lt;= 0){</div>
                                              <div><span style="white-space:pre-wrap">
                                                </span>hardScore +=
                                                commonSkillCount;</div>
                                              <div><span style="white-space:pre-wrap">
                                                </span>}</div>
                                            </div>
                                            <div><br>
                                            </div>
                                            <div>and I got the result</div>
                                            <div><br>
                                            </div>
                                            <div>
                                              <div>ID: 104[Skills: ABC
                                                2,]   -  
                                                Trewq(8)[Skills: ABC
                                                3,ABC 2,] ------
                                                Feasible(0)</div>
                                              <div>ID: 103[Skills: ABC
                                                3,]   -  
                                                Trewq(8)[Skills: ABC
                                                3,ABC 2,] ------
                                                Feasible(0)</div>
                                              <div>ID: 105[Skills: ABC
                                                4,ABC 3,]   -  
                                                Poiuy(8)[Skills: ABC
                                                1,ABC 2,ABC 3,ABC 4,]
                                                ------ Feasible(0)</div>
                                              <div>ID: 102[Skills: ABC
                                                2,ABC 1,ABC 4,]   -  
                                                Qwert(8)[Skills: ABC
                                                2,ABC 4,] ------
                                                Broken(1)</div>
                                              <div>ID: 101[Skills: ABC
                                                1,]   -  
                                                Lkjhg(8)[Skills: ABC
                                                4,ABC 1,] ------
                                                Feasible(0)</div>
                                              <div>ID: 107[Skills: ABC
                                                4,]   -  
                                                Lkjhg(8)[Skills: ABC
                                                4,ABC 1,] ------
                                                Feasible(0)</div>
                                              <div>ID: 106[Skills: ABC
                                                1,]   -  
                                                Qwert(8)[Skills: ABC
                                                2,ABC 4,] ------
                                                Broken(1)</div>
                                              <div>ID: 108[Skills: ABC
                                                3,ABC 2,]   -  
                                                Poiuy(8)[Skills: ABC
                                                1,ABC 2,ABC 3,ABC 4,]
                                                ------ Feasible(0)</div>
                                              <div><br>
                                              </div>
                                              <div>there&#39;s a workorder
                                                that woud be
                                                disconsidered because no
                                                engineer have the
                                                required skill to
                                                complete it</div>
                                            </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">I
                                                      forgot to post the
                                                      code:
                                                      <div><br>
                                                      </div>
                                                      <div>
                                                        <div>
                                                          <div><span style="white-space:pre-wrap">
                                                          </span>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>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>List&lt;Skill&gt;
                                                          requiredSkillList
                                                          = new
                                                          ArrayList&lt;Skill&gt;();</div>
                                                        <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>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>for
                                                          (SkillWorkOrder
                                                          swo :
                                                          o.getRequiredSkills()){</div>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>requiredSkillList.add(swo.getSkill());</div>
                                                        <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>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>int
                                                          commonSkillCount
                                                          = 0;</div>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>for
                                                          (SkillEngineer
                                                          se :
                                                          e.getSkillEngineerList()){</div>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>for
                                                          (Skill s :
                                                          requiredSkillList){</div>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>if
                                                          (se.getSkill().getId()
                                                          == s.getId()){</div>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>commonSkillCount++;</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>if
                                                          (commonSkillCount
                                                          != 0){</div>
                                                        <div><span style="white-space:pre-wrap">
                                                          </span>hardScore
                                                          +=
                                                          commonSkillCount;</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><br>
                                                        </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><br>
                                                      </div>
                                                      <div>( but i still
                                                        want to try to
                                                        create this in
                                                        dsl rule after
                                                        this work :D )</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">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>
                                                          (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><br>
                                                          </div>
                                                          <div>----Compilation
                                                          Result----</div>
                                                          <div>
                                                          <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>So, if I
                                                          add another
                                                          worktime with
                                                          4 hours, it
                                                          messes
                                                          everything,
                                                          this is the
                                                          outcome:</div>
                                                          <div><br>
                                                          </div>
                                                          <div>
                                                          <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>to be
                                                          precise, i
                                                          don&#39;t know if
                                                          it is because
                                                          of worktime or
                                                          skill</div>
                                                          </div>
                                                          </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>
                                                          <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">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>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          <br>
                                                        </div>
                                                      </div>
                                                    </div>
                                                  </blockquote>
                                                </div>
                                                <br>
                                              </div>
                                            </div>
                                          </div>
                                        </blockquote>
                                      </div>
                                      <br>
                                    </div>
                                  </div>
                                </div>
                              </blockquote>
                            </div>
                            <br>
                          </div>
                        </div>
                      </div>
                    </blockquote>
                  </div>
                  <br>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br></div>