`
y806839048
  • 浏览: 1123277 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

复杂业务逻辑编码

阅读更多

 

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

 

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

 

到坐席

 

是否选择订单

  等额

     选择坐席

     不选择坐席

       某一团队所有坐席

       所有团队所有坐席

  平均

     选择坐席

     不选择坐席

       某一团队所有坐席

       所有团队所有坐席

 

 

到团队

。。。

 

 

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;

}

}

 

 

见附件

分享到:
评论

相关推荐

    Iuwikes-业务逻辑安全的攻防思考.pdf

    ### 业务逻辑安全的攻防思考 #### 一、引言 在当今数字化时代,企业的业务逻辑安全成为了网络安全领域中的一个重要课题。业务逻辑安全是指确保应用程序按照预期的方式运行,防止非法用户利用系统的业务流程漏洞进行...

    基于C#+ASP.NET的实现的动态创建数据访问层及业务逻辑层类库及例子源码

    在IT行业中,数据访问层(DAL)和业务逻辑层(BLL)是软件架构中的关键组成部分,尤其是在构建大型、复杂的Web应用程序时。本资源提供的"基于C#+ASP.NET的实现的动态创建数据访问层及业务逻辑层类库及例子源码"是一...

    使用 Drools 规则引擎实现业务逻辑

    随着软件系统变得越来越复杂,管理和维护其中的业务逻辑也成为了开发过程中的一大挑战。传统的硬编码方式虽然能够实现业务需求,但在面对频繁变更的需求时显得力不从心。在这种背景下,规则引擎作为一种灵活高效的...

    CodeSmith的C#实体类 数据访问层 业务逻辑层的模板

    使用CodeSmith生成代码,能够显著减少手动编码的时间,让开发者能够更专注于业务逻辑的实现和优化。此外,当数据库结构发生变化时,只需更新模板,就可以快速同步到实体类和数据访问层的代码,降低了维护成本。 6....

    Drool规则引擎在实现业务逻辑中的应用

    然而,这种硬编码的方式在面对复杂多变的业务逻辑时,显得捉襟见肘,难以维护。 ##### 不利用规则引擎的代码示例 ```java String personName = person.getName(); int age = person.getAge(); if (age &gt;= 18) { ...

    数据层编码小工具

    BLL通过调用DAL来实现对数据库的操作,并且可以封装复杂的业务逻辑。工具生成的BLL代码会根据需求自动调用DAL中的方法,使得业务处理更加简洁明了。 模型(MODEL)通常包含与数据库表对应的实体类,用于数据传输和...

    uvc 去掉业务逻辑,可直接调试的代码

    描述中的“可直接调试的代码”意味着源码已准备好,去除了可能妨碍调试过程的复杂业务逻辑,这样开发者可以直接进入核心功能的调试,提高问题定位和修复的效率。 标签 "软件/插件" 提示这可能是用于某种软件的应用...

    材料2:5G网络逻辑架构、关键技术、典型业务流程.pdf

    在5G技术发展的道路上,网络逻辑架构、关键技术及典型业务流程是最为核心和基础的概念。5G作为新一代移动通信技术,旨在满足日益增长的数据传输需求,支持高速率、低延迟以及高密度连接的业务场景。 首先,5G网络...

    微逻辑-转换工具

    3. `wljishu.cs`:这是程序的主要业务逻辑代码,包含了转换算法和其他核心功能。 4. `Zhuanhuan.cs`:这个文件可能包含了具体的转换类或方法,实现了编码间的转换功能。 5. `DATAsc.cs`:可能涉及数据操作相关的代码...

    一个工业制造公司编码实例

    - 半成品的编码可能采用类似原材料的逻辑,但会根据公司的具体需求有所不同,可能包括半成品类型、生产阶段等信息。 3. **产成品编码**: - 产成品编码通常更为复杂,除了反映产品类型,还可能包含型号、版本等...

    物料编码管理.rar

    "物料编码管理.rar"是一个专门针对这一需求的工具,它允许用户自定义多级分类和流水码生成规则,适应不同企业对物料编码的复杂需求。 在企业中,物料编码通常包括基础物料信息,如物料名称、规格型号、单位、供应商...

    java检测编码工具类

    Java编码检测工具类是Java开发中非常实用的一个组件,它能够帮助开发者准确地识别和处理各种文件的编码格式。在处理跨平台或者不同...使用这类工具,开发者可以更专注于业务逻辑,而不必过于担忧编码问题带来的困扰。

    中国移动业务管理系统源码(SSH框架)

    1. **Struts2**:Struts2是一个MVC(Model-View-Controller)框架,它提供了处理用户请求、控制应用程序流程以及分离业务逻辑和视图的功能。在Struts2中,Action类是业务逻辑的主要载体,而配置文件(struts.xml)...

    ERP物料编码规则指南

    实施物料编码时,企业通常会结合自身业务特点和物料特性,选择合适的编码方式,如数字、字母或组合编码。在实际操作中,可能还会涉及编码的更新维护、错误校验和权限控制等环节,以确保整个编码体系的稳定运行。 ...

    mina框架自定义解编码器

    MINA的核心设计思想是将网络通信过程中的I/O操作抽象化,使得开发者可以专注于业务逻辑,而无需关心底层网络通信的细节。在实际应用中,我们经常需要根据业务需求定制解编码器来处理网络传输的数据。本文将深入探讨...

    融合业务平台中业务生成的研究报告及实现.pdf

    通过这种转换,开发者可以将业务逻辑的抽象模型直接转化为实际平台可以理解的代码,减少了手动编码的工作量和错误率。 在网络技术飞速发展的背景下,网络已经渗透到个人生活和企业的各个层面。网络的互联互通性和...

    Web安全测试中常见逻辑漏洞解析

    同时,建立安全意识培训,让开发人员理解业务逻辑安全的重要性,将安全编码原则融入开发过程。此外,与专业的网络安全公司合作,可以获得更全面的安全解决方案和咨询服务,以应对不断演变的网络威胁。总之,逻辑漏洞...

    GSM系统信道编码技术探讨

    总结而言,GSM系统信道编码技术是实现其高效、安全通信的基础,涉及物理信道与逻辑信道的分配,业务信道和控制信道的设置,以及各种信道在语音、数据传输和系统控制中的具体应用。通过对这些技术的深入理解,我们...

Global site tag (gtag.js) - Google Analytics