欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

企业审计模块的实现, 大家来讨论

更新时间: 2014-01-05 02:54:16 责任编辑: Author_N1

 

企业审批模块的实现, 大家来讨论
现在项目中要加入审批模块
之前做过类似的模块, 但当时做的是简单版的,现在要做一个更优秀的

1. 审核流程自定义。允许客户自定义审核流程,每个流程由若干个审核阶段组成, 每个审核阶段为组织结构中的某个岗位,或自定义若干人组成,
   能够定义同一审核阶段用户之间审核是与的关系还是或的关系,或N人中几人通过就阶段通过。

2. 针对系统的不同业务对象定义其审核流程。根据业务对象的属性生成不同的审批流程,例如为采购订单 采购对象为苹果时的流程, 采购金额>100时的流程, XX岗位申请采购的流程都不同。审核模块应当是独立的,能够提供独立接口为系统中的不同业务对象所用。


设计思路:
 1.  定义审核模板表

审核模板表1主表
    模板ID  模板名   .............
--------------------------------------------------
      1      模板1
  ...

审核模板表2流程
    模板ID  序号  阶段     条件ID    比较符    比较值                下一阶段
--------------------------------
    1       1    岗位1    1          >      100                 2
    1       2    岗位2    3         <=     '2008-11-12'        3
    1       3    岗位3    

审核模板表3条件
 条件ID  条件名   条件表达式                             描述                              所属对象
------------------------------------------------------------
1        基本税   ([Num1]*[Num2]-[Num3])/10    ([金额]*[数量]-[底数])/10           采购定单业务ID
3       到期时间   [CreateTime]+7              [创建时间]+7                        采购定单业务ID

审核模板表4触发
岗位        业务                 操作             审批模板ID
------------------------------------------------------------
01001     采购定单业务ID       新建操作ID        1


这样, 当XX岗位对XX业务做XX操作时, 就可以根据业务对象的属性不同, 生成不同的审批流程.
把生成好的流程, 放到相关的审批业务表中, 就可以一个阶段一个阶段的申请审批了.

现在我还有几个问题.
1.在生成流程时的条件判断时, 设计得不够灵活, 每个业务的属性可以说是千奇百怪, 完全不可预知,
  比方说, 要求申请人部门ID > XXX时   日期早于XXX时,  公告发布类型为外部时,  如果是数字,日期,字符或字符串间的比较,还好处理点
  如果是特殊业务模块的属性 如 照片尺寸> 多少时, 颜色为灰白时  这时的条件就不太好定义,更是不好判断是否成立

2.对于待审批的业务对象, 我想了三种设计方案, 但都有优缺点, 请大家来分析一下
  2.1 对新建某个业务对象时, (也就是INSERT时) 设一个字段, State 为 1 或 0, 指这条记录为审批中, 待审批完了置为0,
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:54:16
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/15933/
本文WWW.DOC100.NET DOC100.NET版权所有。