通达OA更改源代码,允许任何情况下退回工作流

<?php
    include_once 'inc/auth.inc.php';
    include_once 'inc/db/dbms.php';
    include_once 'inc/workflow/engine/prcsnode.class.php';
    include_once ( "inc/workflow/engine/workengine.inc.php");
    include_once ( "inc/workflow/inc/worklog.class.php" );
    include_once("inc/utility_sms1.php");
    function writeFeedBack($data){
        $EDIT_TIME=date("Y-m-d H:i:s",time());
        $OBJ_SQL_SYNTAX = SQLSyntaxFactory::factory ( MYOA_DBMS );
        $keyValue = Array (
                'RUN_ID' => $data ['run_id'],
                'PRCS_ID' => $data['prcs_id'],
                'USER_ID' => $data ['user_id'],
                'FLOW_PRCS' => $data ['flow_prcs'],
                'EDIT_TIME' => date("Y-m-d H:i:s",time()),
				'FEED_FLAG' => 2,
                'CONTENT' => $data['content']
        );
        if(!trim($keyValue["CONTENT"]) == "")
        {
            $sql = $OBJ_SQL_SYNTAX->getInsertSQL ( "FLOW_RUN_FEEDBACK" , $keyValue );
            exequery ( TD::conn () , $sql , TRUE );
        }
    }
        
    ob_end_clean();
    $allow_back = $_POST['allow_back'];//退回类型
    $back_counter_singn = iconv('utf-8', $MYOA_CHARSET, $_POST['back_counter_singn']);
    $back_to_prcs = $_POST['back_to_prcs']; //退回步骤
    $prcs_key_id = $_POST['prcs_key_id'];
    if($prcs_key_id && $flow_run_prcs = getFlowRunPrcsById(intval($prcs_key_id))){
        $run_id = $flow_run_prcs['RUN_ID'];
        $prcs_id = $flow_run_prcs['PRCS_ID'];
        $flow_prcs = $flow_run_prcs['FLOW_PRCS'];
    }else{
        $run_id = $_POST['run_id']; //$run_id
        $prcs_id = $_POST['prcs_id']; //prcs_id
        $flow_prcs = $_POST['flow_prcs']; //flow_prcs
        $prcs_key_id = '';
    }
    $flow_id = $_POST['flow_id']; //flow_id
    $user_id = $_POST['user_id'] == '' ? $_SESSION['LOGIN_USER_ID'] : $_POST['user_id'];
    $back_to_prcs_arr = explode(',', $back_to_prcs);

    foreach($back_to_prcs_arr as $unit_back_prcs){
        if($unit_back_prcs == ''){
        	continue;
        }
        $unit_back_prcs_arr = explode('_', $unit_back_prcs);
        if(count($unit_back_prcs_arr) != 3){
        	 continue;
        }
        $back_prcs_nodes = array();
        $back_prcs_nodes['prcs_id'] =  $unit_back_prcs_arr[1];
        $back_prcs_nodes['flow_prcs'] =  $unit_back_prcs_arr[2];
        $back_prcs_nodes['run_id'] = $run_id;
        $back_prcs_nodes['flow_id'] = $flow_id;
        $to_prcs_nodes[] = $back_prcs_nodes;
    }
    if(!empty($to_prcs_nodes)){
        $prcs_node = new PrcsNode ( $flow_id , $run_id , $flow_prcs , $prcs_id, $prcs_key_id);
        $check_result = $prcs_node->is_allow_back();
        
        
        if($check_result == TRUE){
            $prcs_node -> back_prcs($to_prcs_nodes);
            foreach($to_prcs_nodes as $unit_node_info){
                $prcsname = getFlowPrcsName($flow_id, $unit_node_info['flow_prcs']);
                WorkLog::log ( $flow_id , $run_id , $run_name , $prcs_id , $flow_prcs , $user_id , WorkLOG::$LOG_TYPE_BASE , _('退回到第'.$unit_node_info['prcs_id'].'步骤:'.$prcsname) , TD::conn() );
            }
            $feedBackData = array(
                    'run_id' => $run_id,
                    'prcs_id' => $prcs_id,
                    'user_id' => $user_id,
                    'flow_prcs' => $flow_prcs,
                    'content' => nl2br($back_counter_singn)
            );
            writeFeedBack($feedBackData);
            ECHO "SUCCESS|";
            exit;
        }else if($check_result == FALSE){
           // ECHO "ERROR|"._("有人正在办理不能退回该步骤");
		   
		   
		    $prcs_node -> back_prcs($to_prcs_nodes);
            foreach($to_prcs_nodes as $unit_node_info){
                $prcsname = getFlowPrcsName($flow_id, $unit_node_info['flow_prcs']);
                WorkLog::log ( $flow_id , $run_id , $run_name , $prcs_id , $flow_prcs , $user_id , WorkLOG::$LOG_TYPE_BASE , _('退回到第'.$unit_node_info['prcs_id'].'步骤:'.$prcsname) , TD::conn() );
            }
            $feedBackData = array(
                    'run_id' => $run_id,
                    'prcs_id' => $prcs_id,
                    'user_id' => $user_id,
                    'flow_prcs' => $flow_prcs,
                    'content' => nl2br($back_counter_singn)
            );
            writeFeedBack($feedBackData);
			  ECHO "SUCCESS|";
			  
			  
			  
            exit;
        }
    }
?>

页面路径:D:\MYOA\webroot\general\workflow\list\input_form\data\backhandle.php


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hai7425

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值