复杂业务逻辑编码

 

复杂逻辑编码先用意语言,写好,然后逐步书写代码

 

写好后再抽出可以共用的方法---很重要,关系到代码的整洁,和后续可修改,可维护性

 

到坐席

 

是否选择订单

  等额

     选择坐席

     不选择坐席

       某一团队所有坐席

       所有团队所有坐席

  平均

     选择坐席

     不选择坐席

       某一团队所有坐席

       所有团队所有坐席

 

 

到团队

。。。

 

 

if(全团队||全坐席){

 

if(“分派座席”= “全部座席”){

 

 

//此处合并所有团队所有坐席情况,坐席具体归属再按照团队查

 

 

if(当前页勾选){

 

 勾选为总量//弹窗分派;

 

  if(等额数量){

  

if(选择坐席){

根据等额数量,将名单等额分配到选中的座席上,未勾选的座席不做分派,如果座席不够分配则弹窗提示“名单不足,请重新输入等额数量!

 

    }else{//未选择

    

    如果当前没有勾选座席,则根据等额数量,按默认顺序逐个分配,直到当前名单分派完毕,并且将已分派的座席打上勾

    

    }

 

 

  }

 

if(平均分配){

按照顺序给每个座席平均分配,如果座席数量不够则有多少名单分派多少名单,多出的座席空置。

 

  }

  }else{

  //未选择当前页,查出所有这个人能看到的所有未分派名单,为总量

 

 if(等额数量){

  

if(选择坐席){

根据等额数量,将名单等额分配到选中的座席上,未勾选的座席不做分派,如果座席不够分配则弹窗提示“名单不足,请重新输入等额数量!

 

    }else{//未选择

    

    如果当前没有勾选座席,则根据等额数量,按默认顺序逐个分配,直到当前名单分派完毕,并且将已分派的座席打上勾

    

    }

 

 

  }

 

if(平均分配){

按照顺序给每个座席平均分配,如果座席数量不够则有多少名单分派多少名单,多出的座席空置。

 

  }

 

  

  }

  

}

 

if(“全部团队” and“分派座席”=空白){

 

 

if(当前页勾选){

 //勾选数据为总量

if(等额数量){

 

if(选择团队){

根据等额数量[输入的数量就是没每分数,剩下的不分配,总数是前面勾选的],将名单等额分配到选中的团队上,未勾选的团队不做分派,如果团队不够分配则弹窗提示“名单不足,请重新输入等额数量!”

}else{

//没有勾选团队

如果当前没有勾选团队[要全部分配完,没分完剩下],则根据等额数量,按默认顺序逐个分配,直到当前名单分派完毕,并且将已分派的团队打上勾。

 

}

 

 

}

 

if(平均分配){

按照顺序给每个团队平均分配,如果团队数量不够则有多少名单分派多少名单,多出的团队空置。[???剩余的余数如何???余数不分,不分的名单还是未分配]

 

 

 

}

 

 

 

}else{

//未选择当前页

 

if(等额数量){

 

if(选择团队){

根据等额数量[输入的数量就是没每分数,剩下的不分配,总数是前面勾选的],将名单等额分配到选中的团队上,未勾选的团队不做分派,如果团队不够分配则弹窗提示“名单不足,请重新输入等额数量!

 

 

}else{

//没有勾选团队

 

如果当前没有勾选团队[要全部分配完,没分完剩下],则根据等额数量,按默认顺序逐个分配,直到当前名单分派完毕,并且将已分派的团队打上勾。

 

 

 

}

 

 

}else{

 

//平均分配

 

按照顺序给每个团队平均分配,如果团队数量不够则有多少名单分派多少名单,多出的团队空置。[???剩余的余数如何???余数不分,不分的名单还是未分配]

 

 

}

 

 

 

 

}

 

}

 

 

 

 

 

}

 

 

代码最终实现:

@Transactional(rollbackFor = Exception.class)

@Override

public int updateByPrimaryKeySelective(List<FinancialSalesOrder> record,String optype,String userId) throws Exception{

FinancialSalesOrderDO recordde;

FinancialSalesOrderDO salesOrderDO;

if(record!=null&&record.size()>0){

//新加的分派规则,全部选项

if("all".equals(record.get(0).getTemId())||"all".equals(record.get(0).getEmpId())){

assignbatch(record, userId);

}else{

for(FinancialSalesOrder re:  record) {

assignRecoverOrder(re);

}

}

 

return 1 ;

}else{

return 0;

}

}

 

 

见附件

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2412026