我也工作流

最近做的一个项目用到工作流,由于不想使用其他的工作流产品,所以依照OSWORKFLOW写了一个,使用效果还不错。现贴上一个信访流程的定义:

ruby 代码
  1. workflow:   
  2.   init-actions:   
  3.     1:   
  4.       name: 开始   
  5.       results:   
  6.         -   
  7.           step: 1   
  8.           status: 在登记   
  9.           owner: @wf_params['caller']+':信访登记人'   
  10.     2:   
  11.       name: 开始复查申请   
  12.       results:   
  13.         -   
  14.           step: 8   
  15.           status: 待复查   
  16.           owner: @wf_params['caller']+':信访办理人'   
  17.     3:   
  18.       name: 开始复核申请   
  19.       results:   
  20.         -   
  21.           step: 9   
  22.           status: 待复核   
  23.           owner: @wf_params['caller']+':信访办理人'   
  24.   steps:   
  25.     1:   
  26.       name: 登记   
  27.       actions:   
  28.         12:   
  29.           name: 修改   
  30.           condition: curr_instance_step(1).status=='在登记'   
  31.           params:   
  32.             action-name: edit   
  33.           results:   
  34.             -   
  35.               step: 1   
  36.               status: 在登记   
  37.               owner: @wf_params['caller']+':信访登记人'   
  38.         13:   
  39.           name: 删除   
  40.           condition: curr_instance_step(1).status=='在登记'   
  41.           params:   
  42.             action-name: destroy   
  43.           results:   
  44.             -   
  45.               step: 1   
  46.               status: 在登记   
  47.               owner: @wf_params['caller']+':信访登记人'   
  48.         11:   
  49.           name: 提交拟办   
  50.           condition: curr_instance_step(1).status=='在登记'   
  51.           params:   
  52.             action-name: comm_proc   
  53.           results:   
  54.             -   
  55.               step: 2   
  56.               status: 待拟办   
  57.               owner: @wf_params['caller'] + ':信访受理人'   
  58.     2:   
  59.       name: 拟办   
  60.       actions:   
  61.         21:   
  62.           name: 签收   
  63.           condition: curr_instance_step(2).status=='待拟办'   
  64.           params:    
  65.             action-name: sign   
  66.           results:   
  67.             -   
  68.               step: 2   
  69.               status: 在拟办   
  70.               owner: @wf_params['caller'] + ':信访受理人'   
  71.         22:   
  72.           name: 填写拟办意见   
  73.           condition: curr_instance_step(2).status=='在拟办'   
  74.           params:    
  75.             action-name: comm_proc   
  76.           results:   
  77.             -   
  78.               step: 2   
  79.               status: 在拟办   
  80.               owner: @wf_params['caller'] + ':信访受理人'   
  81.         23:   
  82.           name: 请示领导   
  83.           condition: curr_instance_step(2).status=='在拟办'   
  84.           params:   
  85.             action-name: comm_proc   
  86.           results:   
  87.             -   
  88.               step: 3   
  89.               status: 待审批   
  90.               owner: @wf_params['caller'] + ':信访审批人'   
  91.         24:   
  92.           name: 提交受理   
  93.           condition: curr_instance_step(2).status=='在拟办'   
  94.           params:    
  95.             action-name: comm_proc   
  96.           results:   
  97.             -   
  98.               step: 4   
  99.               status: 待受理   
  100.               owner: @wf_params['caller'] + ':信访受理人'   
  101.     3:   
  102.       name: 审批   
  103.       actions:   
  104.         31:   
  105.           name: 签收   
  106.           condition: curr_instance_step(3).status=='待审批'   
  107.           params:    
  108.             action-name: sign   
  109.           results:   
  110.             -   
  111.               step: 3   
  112.               status: 在审批   
  113.               owner: @wf_params['caller'] + ':信访审批人'   
  114.         32:   
  115.           name: 填写审批意见   
  116.           condition: curr_instance_step(3).status=='在审批'   
  117.           params:    
  118.             action-name: comm_proc   
  119.           results:   
  120.             -   
  121.               step: 3   
  122.               status: 在审批   
  123.               owner: @wf_params['caller'] + ':信访审批人'   
  124.         33:   
  125.           name: 审批回复   
  126.           condition: curr_instance_step(3).status=='在审批'   
  127.           params:    
  128.             action-name: comm_proc   
  129.           results:   
  130.             -   
  131.               step: 4   
  132.               status: 待受理   
  133.               owner: @wf_params['caller'] + ':信访受理人'   
  134.     4:   
  135.       name: 受理   
  136.       actions:   
  137.         41:   
  138.           name: 签收   
  139.           condition: curr_instance_step(4).status=='待受理'   
  140.           params:   
  141.             action-name: sign   
  142.           results:   
  143.             -   
  144.               step: 4   
  145.               status: 在受理   
  146.               owner: @wf_params['caller'] + ':信访受理人'   
  147.         42:   
  148.           name: 受理   
  149.           condition: curr_instance_step(4).status=='在受理'   
  150.           params:   
  151.             action-name: comm_proc   
  152.             doc-template: doc_proc   
  153.             req-receiver: false  
  154.           after-action: |   
  155.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  156.             if letter_visit   
  157.               human = Human.find letter_visit.letter_visit_tracks.last.human_id   
  158.               letter_visit.proced_at = Time.now   
  159.               letter_visit.proc_department_id = human.com_id   
  160.               letter_visit.save!   
  161.             end  
  162.           results:   
  163.             -   
  164.               step: 4   
  165.               status: 已受理   
  166.               owner: @wf_params['caller'] + ':信访受理人'   
  167.         43:   
  168.           name: 告知   
  169.           condition: curr_instance_step(4).status=='在受理'   
  170.           params:   
  171.             action-name: comm_proc   
  172.             doc-template: doc_tell   
  173.             req-receiver: false  
  174.           results:   
  175.             -   
  176.               step: 6   
  177.               status: 办结   
  178.         44:   
  179.           name: 不再受理   
  180.           condition: curr_instance_step(4).status=='在受理'   
  181.           params:   
  182.             action-name: comm_proc   
  183.             doc-template: doc_never_proc   
  184.             req-receiver: false  
  185.           after-action: |   
  186.             letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id   
  187.             if letter_visit   
  188.               letter_visit.result = '不再受理'   
  189.               letter_visit.save!   
  190.             end  
  191.           results:   
  192.             -   
  193.               step: 6   
  194.               status: 办结   
  195.         45:   
  196.           name: 不予受理   
  197.           condition: curr_instance_step(4).status=='在受理'   
  198.           params:   
  199.             action-name: comm_proc   
  200.             doc-template: doc_not_proc   
  201.             req-receiver: false  
  202.           after-action: |   
  203.             letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id   
  204.             if letter_visit   
  205.               letter_visit.result = '不予受理'   
  206.               letter_visit.save!   
  207.             end  
  208.           results:   
  209.             -   
  210.               step: 6   
  211.               status: 办结   
  212.         46:   
  213.           name: 指派   
  214.           condition: curr_instance_step(4).status=='已受理'   
  215.           params:   
  216.             action-name: comm_proc   
  217.             doc-template: doc_empty   
  218.             req-receiver: humen   
  219.           results:   
  220.             -   
  221.               step: 5   
  222.               status: 待办理   
  223.               owner: @wf_params['caller'] + ':信访办理人'   
  224.         47:   
  225.           name: 转送   
  226.           condition: curr_instance_step(4).status=='已受理'   
  227.           params:   
  228.             action-name: comm_proc   
  229.             doc-template: doc_forward   
  230.             req-receiver: departments   
  231.           results:   
  232.             -   
  233.               step: 7   
  234.               status: 待接收   
  235.               owner: @wf_params['recv_com_id'] + ':信访受理人'   
  236.         48:   
  237.           name: 交办   
  238.           condition: curr_instance_step(4).status=='已受理'   
  239.           params:   
  240.             action-name: comm_proc   
  241.             doc-template: doc_handto   
  242.             req-receiver: departments   
  243.           results:   
  244.             -   
  245.               step: 7   
  246.               status: 待接收   
  247.               owner: @wf_params['recv_com_id'] + ':信访受理人'   
  248.     5:   
  249.       name: 办理   
  250.       actions:   
  251.         51:   
  252.           name: 签收   
  253.           condition: curr_instance_step(5).status=='待办理'   
  254.           params:   
  255.             action-name: sign   
  256.           results:   
  257.             -   
  258.               step: 5   
  259.               status: 在办理   
  260.               owner: @wf_params['caller'] + ':信访办理人'   
  261.         52:   
  262.           name: 处理   
  263.           condition: curr_instance_step(5).status=='在办理'   
  264.           params:   
  265.             action-name: comm_proc   
  266.             doc-template: doc_reply   
  267.           after-action: |   
  268.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  269.             if letter_visit   
  270.               letter_visit.result = '处理'   
  271.               letter_visit.save!   
  272.             end  
  273.           results:   
  274.             -   
  275.               step: 6   
  276.               status: 办结   
  277.     7:   
  278.       name: 接收上级案件   
  279.       actions:   
  280.         71:   
  281.           name: 签收   
  282.           condition: curr_instance_step(7).status=='待接收'   
  283.           params:   
  284.             action-name: sign   
  285.           results:   
  286.             -   
  287.               step: 7   
  288.               status: 待指派   
  289.               owner: @wf_params['caller'] + ':信访受理人'   
  290.         72:   
  291.           name: 指派   
  292.           condition: curr_instance_step(7).status=='待指派'   
  293.           params:   
  294.             action-name: comm_proc   
  295.             doc-template: doc_empty   
  296.             req-receiver: humen   
  297.           results:   
  298.             -   
  299.               step: 5   
  300.               status: 待办理   
  301.               owner: @wf_params['caller'] + ':信访办理人'   
  302.     6:   
  303.       name: 完成   
  304.       actions:   
  305.         61:   
  306.           name: 办结处理   
  307.           auto: true  
  308.           after-action: |   
  309.             letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id   
  310.             if letter_visit   
  311.               human = Human.find letter_visit.letter_visit_tracks.last.human_id   
  312.               letter_visit.finished_at = Time.now   
  313.               letter_visit.finish_department_id = human.com_id   
  314.               letter_visit.status = '办结'   
  315.               letter_visit.wf_instance_id = nil  
  316.               letter_visit.save!   
  317.             end  
  318.             @wf_instance.destroy   
  319.           results:   
  320.             -   
  321.               step: 6   
  322.               status: 办结   
  323.     8:   
  324.       name: 复查办理   
  325.       actions:   
  326.         1:   
  327.           name: 签收   
  328.           condition: curr_instance_step(8).status=='待复查'   
  329.           params:   
  330.             action-name: sign   
  331.           results:   
  332.             -   
  333.               step: 8   
  334.               status: 在复查   
  335.               owner: @wf_params['caller'] + ':信访办理人'   
  336.         2:   
  337.           name: 复查   
  338.           condition: curr_instance_step(8).status=='在复查'   
  339.           params:   
  340.             action-name: comm_proc   
  341.             doc-template: doc_rescan   
  342.           after-action: |   
  343.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  344.             if letter_visit   
  345.               letter_visit.result = '复查'   
  346.               letter_visit.save!   
  347.             end  
  348.           results:   
  349.             -   
  350.               step: 6   
  351.               status: 办结   
  352.     9:   
  353.       name: 复核办理   
  354.       actions:   
  355.         1:   
  356.           name: 签收   
  357.           condition: curr_instance_step(9).status=='待复核'   
  358.           params:   
  359.             action-name: sign   
  360.           results:   
  361.             -   
  362.               step: 9   
  363.               status: 在复核   
  364.               owner: @wf_params['caller'] + ':信访办理人'   
  365.         2:   
  366.           name: 复核   
  367.           condition: curr_instance_step(9).status=='在复核'   
  368.           params:   
  369.             action-name: comm_proc   
  370.             doc-template: doc_recheck   
  371.           after-action: |   
  372.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  373.             if letter_visit   
  374.               letter_visit.result = '复核'   
  375.               letter_visit.save!   
  376.             end  
  377.           results:   
  378.             -   
  379.               step: 6   
  380.               status: 办结   
  381.             

猜你喜欢

转载自stworthy.iteye.com/blog/87701