一个项目中涉及到工作流,其中一个流程是在内部人员流转,共3个环节,第一个环节是派发到项目负责人,第二个环节是项目负责人分派任务给其他人处理,第三个环节是处理人传阅给其他工作人员。
前台需要展示一个流程的流转过程,但是要求只能看自己处理环节以下的各个环节。
设想的传递路径是这样的:
--流程历史表
CREATE TABLE t_flowtask
(instid varchar2(50) --流程编号
,taskid varchar2(50) --环节编号
,nodeid varchar2(10) --环节代码
,fromuser varchar2(20) --发送人
,touser varchar2(20) --接收人
,arrivetime date default sysdate --发送时间
);
--模拟数据
insert into t_flowtask values('201801010001',sys_guid(),'manager','','A',SYSDATE-10);
insert into t_flowtask values('201801010001',sys_guid(),'execusor','A','B',SYSDATE-9);
insert into t_flowtask values('201801010001',sys_guid(),'execusor','A','C',SYSDATE-9);
insert into t_flowtask values('201801010001',sys_guid(),'reader','B','D',SYSDATE-8);
insert into t_flowtask values('201801010001',sys_guid(),'reader','B','E',SYSDATE-8);
insert into t_flowtask values('201801010001',sys_guid(),'reader','C','F',SYSDATE-7);
刚开始开发人员写的SQL是这样的:
SQL> select RPAD(' ',2*(LEVEL-1),' ')||FROMUSER||'->'||TOUSER||'@'||TO_CHAR(ARRIVETIME,'YYYY-MM-DD') routing
2 FROM t_flowtask
3 WHERE instid='201801010001'