最近做的一个项目用到工作流,由于不想使用其他的工作流产品,所以依照OSWORKFLOW写了一个,使用效果还不错。现贴上一个信访流程的定义:
ruby 代码
- workflow:
- init-actions:
- 1:
- name: 开始
- results:
- -
- step: 1
- status: 在登记
- owner: @wf_params['caller']+':信访登记人'
- 2:
- name: 开始复查申请
- results:
- -
- step: 8
- status: 待复查
- owner: @wf_params['caller']+':信访办理人'
- 3:
- name: 开始复核申请
- results:
- -
- step: 9
- status: 待复核
- owner: @wf_params['caller']+':信访办理人'
- steps:
- 1:
- name: 登记
- actions:
- 12:
- name: 修改
- condition: curr_instance_step(1).status=='在登记'
- params:
- action-name: edit
- results:
- -
- step: 1
- status: 在登记
- owner: @wf_params['caller']+':信访登记人'
- 13:
- name: 删除
- condition: curr_instance_step(1).status=='在登记'
- params:
- action-name: destroy
- results:
- -
- step: 1
- status: 在登记
- owner: @wf_params['caller']+':信访登记人'
- 11:
- name: 提交拟办
- condition: curr_instance_step(1).status=='在登记'
- params:
- action-name: comm_proc
- results:
- -
- step: 2
- status: 待拟办
- owner: @wf_params['caller'] + ':信访受理人'
- 2:
- name: 拟办
- actions:
- 21:
- name: 签收
- condition: curr_instance_step(2).status=='待拟办'
- params:
- action-name: sign
- results:
- -
- step: 2
- status: 在拟办
- owner: @wf_params['caller'] + ':信访受理人'
- 22:
- name: 填写拟办意见
- condition: curr_instance_step(2).status=='在拟办'
- params:
- action-name: comm_proc
- results:
- -
- step: 2
- status: 在拟办
- owner: @wf_params['caller'] + ':信访受理人'
- 23:
- name: 请示领导
- condition: curr_instance_step(2).status=='在拟办'
- params:
- action-name: comm_proc
- results:
- -
- step: 3
- status: 待审批
- owner: @wf_params['caller'] + ':信访审批人'
- 24:
- name: 提交受理
- condition: curr_instance_step(2).status=='在拟办'
- params:
- action-name: comm_proc
- results:
- -
- step: 4
- status: 待受理
- owner: @wf_params['caller'] + ':信访受理人'
- 3:
- name: 审批
- actions:
- 31:
- name: 签收
- condition: curr_instance_step(3).status=='待审批'
- params:
- action-name: sign
- results:
- -
- step: 3
- status: 在审批
- owner: @wf_params['caller'] + ':信访审批人'
- 32:
- name: 填写审批意见
- condition: curr_instance_step(3).status=='在审批'
- params:
- action-name: comm_proc
- results:
- -
- step: 3
- status: 在审批
- owner: @wf_params['caller'] + ':信访审批人'
- 33:
- name: 审批回复
- condition: curr_instance_step(3).status=='在审批'
- params:
- action-name: comm_proc
- results:
- -
- step: 4
- status: 待受理
- owner: @wf_params['caller'] + ':信访受理人'
- 4:
- name: 受理
- actions:
- 41:
- name: 签收
- condition: curr_instance_step(4).status=='待受理'
- params:
- action-name: sign
- results:
- -
- step: 4
- status: 在受理
- owner: @wf_params['caller'] + ':信访受理人'
- 42:
- name: 受理
- condition: curr_instance_step(4).status=='在受理'
- params:
- action-name: comm_proc
- doc-template: doc_proc
- req-receiver: false
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)
- if letter_visit
- human = Human.find letter_visit.letter_visit_tracks.last.human_id
- letter_visit.proced_at = Time.now
- letter_visit.proc_department_id = human.com_id
- letter_visit.save!
- end
- results:
- -
- step: 4
- status: 已受理
- owner: @wf_params['caller'] + ':信访受理人'
- 43:
- name: 告知
- condition: curr_instance_step(4).status=='在受理'
- params:
- action-name: comm_proc
- doc-template: doc_tell
- req-receiver: false
- results:
- -
- step: 6
- status: 办结
- 44:
- name: 不再受理
- condition: curr_instance_step(4).status=='在受理'
- params:
- action-name: comm_proc
- doc-template: doc_never_proc
- req-receiver: false
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id
- if letter_visit
- letter_visit.result = '不再受理'
- letter_visit.save!
- end
- results:
- -
- step: 6
- status: 办结
- 45:
- name: 不予受理
- condition: curr_instance_step(4).status=='在受理'
- params:
- action-name: comm_proc
- doc-template: doc_not_proc
- req-receiver: false
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id
- if letter_visit
- letter_visit.result = '不予受理'
- letter_visit.save!
- end
- results:
- -
- step: 6
- status: 办结
- 46:
- name: 指派
- condition: curr_instance_step(4).status=='已受理'
- params:
- action-name: comm_proc
- doc-template: doc_empty
- req-receiver: humen
- results:
- -
- step: 5
- status: 待办理
- owner: @wf_params['caller'] + ':信访办理人'
- 47:
- name: 转送
- condition: curr_instance_step(4).status=='已受理'
- params:
- action-name: comm_proc
- doc-template: doc_forward
- req-receiver: departments
- results:
- -
- step: 7
- status: 待接收
- owner: @wf_params['recv_com_id'] + ':信访受理人'
- 48:
- name: 交办
- condition: curr_instance_step(4).status=='已受理'
- params:
- action-name: comm_proc
- doc-template: doc_handto
- req-receiver: departments
- results:
- -
- step: 7
- status: 待接收
- owner: @wf_params['recv_com_id'] + ':信访受理人'
- 5:
- name: 办理
- actions:
- 51:
- name: 签收
- condition: curr_instance_step(5).status=='待办理'
- params:
- action-name: sign
- results:
- -
- step: 5
- status: 在办理
- owner: @wf_params['caller'] + ':信访办理人'
- 52:
- name: 处理
- condition: curr_instance_step(5).status=='在办理'
- params:
- action-name: comm_proc
- doc-template: doc_reply
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)
- if letter_visit
- letter_visit.result = '处理'
- letter_visit.save!
- end
- results:
- -
- step: 6
- status: 办结
- 7:
- name: 接收上级案件
- actions:
- 71:
- name: 签收
- condition: curr_instance_step(7).status=='待接收'
- params:
- action-name: sign
- results:
- -
- step: 7
- status: 待指派
- owner: @wf_params['caller'] + ':信访受理人'
- 72:
- name: 指派
- condition: curr_instance_step(7).status=='待指派'
- params:
- action-name: comm_proc
- doc-template: doc_empty
- req-receiver: humen
- results:
- -
- step: 5
- status: 待办理
- owner: @wf_params['caller'] + ':信访办理人'
- 6:
- name: 完成
- actions:
- 61:
- name: 办结处理
- auto: true
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id
- if letter_visit
- human = Human.find letter_visit.letter_visit_tracks.last.human_id
- letter_visit.finished_at = Time.now
- letter_visit.finish_department_id = human.com_id
- letter_visit.status = '办结'
- letter_visit.wf_instance_id = nil
- letter_visit.save!
- end
- @wf_instance.destroy
- results:
- -
- step: 6
- status: 办结
- 8:
- name: 复查办理
- actions:
- 1:
- name: 签收
- condition: curr_instance_step(8).status=='待复查'
- params:
- action-name: sign
- results:
- -
- step: 8
- status: 在复查
- owner: @wf_params['caller'] + ':信访办理人'
- 2:
- name: 复查
- condition: curr_instance_step(8).status=='在复查'
- params:
- action-name: comm_proc
- doc-template: doc_rescan
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)
- if letter_visit
- letter_visit.result = '复查'
- letter_visit.save!
- end
- results:
- -
- step: 6
- status: 办结
- 9:
- name: 复核办理
- actions:
- 1:
- name: 签收
- condition: curr_instance_step(9).status=='待复核'
- params:
- action-name: sign
- results:
- -
- step: 9
- status: 在复核
- owner: @wf_params['caller'] + ':信访办理人'
- 2:
- name: 复核
- condition: curr_instance_step(9).status=='在复核'
- params:
- action-name: comm_proc
- doc-template: doc_recheck
- after-action: |
- letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)
- if letter_visit
- letter_visit.result = '复核'
- letter_visit.save!
- end
- results:
- -
- step: 6
- status: 办结