派单规则类图
2021-11-24 11:39:43 0 举报
派单规则
作者其他创作
大纲/内容
RuleOutput//规则输出
RuleEngine
ProcessData dispatchRule(BillDo billDo)//派单dispatchSuccess(ProcessData data)//派单成功后的处理
RuleData//规则DispatchRuleDo rule;//等级规则 DispatchGradeDo grade;//等级详情列表 List<DispatchGradeDetailDo> gradeDetailList; //继承 Condition 的类 bean name 列表 (逗号分隔) String conditions; //继承 Selector 的类 bean name 列表 (逗号分隔) String selectors;
RuleProcesser//规则逻辑处理
void selectAssignee(ProcessData data)//选择委托人
RuleNode//规则处理节点
//当前规则是否启用此功能 默认启用Boolean isEnable(RuleData data)//节点初始化自身需要的数据void init(RuleData data)
RuleEngine//运行规则
RuleProcesserRuleMatcherRuleCache
ProcessData run(ProcessData data)//运行规则处理单据void dispose(ProcessData data)//运行规则结束后的处理
OrgCondition//单据来源限制
GradeAverageSeletor//等级平均分派
RuleMatcher//规则匹配
RuleData ruleMatch(ProcessData data)//选择规则 Boolean ruleConflict(RuleData currentRule)//规则冲突判断//选择规则时 调用 inLimit//规则冲突判断 调用 conflict
DefaultAverageSeletor//平均分派
ProcessData String ruleId;//规则id BillDo billDo;//单据 String assignee=null;//委托人(最后的结果) String gradeDetailId=null;//等级规则详情id
Selector//派单逻辑
void process(ProcessData data) //节点处理
RuleManager//规则管理
void init()//初始化void enableRule(DispatchRuleDo rule)//启用规则void disEnableRule(DispatchRuleDo rule)//禁用规则//启用规则 调用 RuleNode的init,初始化缓存数据//禁用规则删除缓存
DateCondition//派单时间
Condition//规则条件
RuleCache//缓存
前缀 redisPrefix = \"RULE\" + 公司Id启用的规则 Set redisPrefix+\"ENABLERULE\"规则明细 Map redisPrefix+ruleId单据使用的规则 String redisPrefix+\"TYPE\"+typeId委托人列表 Map redisPrefix+\"ASSIGNEE\"+ruleId委托人等级列表 Map redisPrefix+\"ASSIGNEE\"+ruleId+gradeDetailId 规则当前阈值 String redisPrefix+\"CURRENTTHRESHOLD\"+ruleId 委托人待处理单据数量 String redisPrefix+\"PENDINGMAP\" + typeId + assignee
收藏
0 条评论
回复 删除
下一页