php流程管理与审核

在公司运营中,人员的变动及请假、离职情况都很普遍,这就需要有一个管理系统来系统的做一套流程,可以提升工作效率节省时间。在流程中需要有顺序的进行提交审核,接下来我们做一套简单的新建流程以及提交审核的系统:

首先需要几张表:userss表、liucheng表、jiedian表、userflow表

第一步新建流程,添加节点,这里要将userss表中的性命显示出来,这里可以用单选也可以用下拉,我们用下拉列表显示:

<h1>新建流程</h1>
<div>请选择节点人员:
    <select id="user">
    <?php
    session_start();
    require "DBDA.class.php";
    $db = new DBDA();
    $sql = "select * from userss";
    $arr = $db->query($sql);
    foreach($arr as $v)
    {
        echo "<option value=‘{$v[0]}‘>{$v[2]}</option>";//找到人员姓名
    }
    ?>
   </select>
   <input type="button" value="添加节点" id="addjd" /><!--id为了添加点击事件-->
</div><br />

效果图:

第二步引入jquery包,给节点添加点击事件:

<script>//给节点添加点击事件
$("#addjd").click(function(){
    var uid = $("#user").val();
    $.ajax({
        url:"liuadd.php",
        data:{uid:uid},
        type:"POST",
        dataType:"TEXT",
        success: function(data){
            window.location.href="liucheng.php";//刷新页面
        }
    })
})

liuadd.php处理页面:

<?php
session_start();
$uid = $_POST["uid"];//取用户名

if(empty($_SESSION["jiedian"]))
{
    $arr = array($uid);//如果为空,造一个数组
    $_SESSION["jiedian"] = $arr;
}
else
{
    $arr = $_SESSION["jiedian"];
    $arr[] = $uid;//将值添加进去
    $_SESSION["jiedian"] = $arr;
}

第三步嵌入php代码,取出session的值,点击添加节点添加到下方:

<div>
<?php
if(empty($_SESSION["jiedian"]))
{
    echo "您尚未添加节点人员";
}
else
{
    $arr = $_SESSION["jiedian"];
    foreach($arr as $k=>$v)
    {
        $sql = "select name from userss where uid = ‘{$v}‘";
        $name = $db->strquery($sql);
        echo "<div id=‘ys‘>{$k}--{$name}--<input type=‘button‘ value=‘移除‘ class=‘yichu‘ sy=‘{$k}‘ /></div>";//取出索引,姓名并添加移除按钮
    }
}
?>
</div><br />

看看效果:

第四步:给移除按钮添加点击事件:

//移除的点击事件
$(".yichu").click(function(){
    var sy = $(this).attr("sy");
    $.ajax({
        url:"yichu.php",
        data:{sy:sy},
        type:"POST",
        dataType:"TEXT",
        success: function(data){
            window.location.href="liucheng.php";
        }
    })
})

yichu.php处理页面:

<?php
session_start();
$sy = $_POST["sy"];

$arr = $_SESSION["jiedian"];
unset($arr[$sy]);//从数组中删除sy这一项
$arr = array_values($arr);//重新索引
$_SESSION["jiedian"] = $arr;

第五步:添加流程名称及保存按钮,保存到数据库:

<div>请输入流程名称:
<input type="text" id="name" />
</div><br />
<input type="button" value="保存" id="baocun" />

保存按钮添加点击事件:

//保存的点击事件
$("#baocun").click(function(){
    var name = $("#name").val();
    $.ajax({
        url:"baocun.php",
        data:{name:name},
        type:"POST",
        dataType:"TEXT",
        success: function(data){
            alert("保存成功");
        }
    })
})

baocun.php处理页面:

<?php
session_start();
require "DBDA.class.php";
$db = new DBDA();
$name = $_POST["name"];
$code = time();//时间戳生成code

$sql = "insert into liucheng values(‘{$code}‘,‘{$name}‘)";//保存到liucheng里边
$db->query($sql,0);
$arr = $_SESSION["jiedian"];
foreach($arr as $k=>$v)
{

    $sql = "insert into jiedian values(‘‘,‘{$code}‘,‘{$v}‘,‘{$k}‘)";//保存到jiedian里边。
    $db->query($sql,0);
}

实现效果:

数据库:

上边是新建流程及保存流程,下边我们就要进行流程的发起和审核:

发起流程要先登录,所以先建个登录页面:

<h1>登录页面</h1>
<form action="liudengchuli.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="password" name="pwd" /></div>
<input type="submit" value="登录" />
</form>

登录处理页面:

<?php
session_start();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];

require "DBDA.class.php";//引入封装类
$db = new DBDA();
$sql = "select pwd from userss where uid = ‘{$uid}‘";//通过用户名找密码
$mm = $db->strquery($sql);
if($mm == $pwd && !empty($pwd))//判断密码是否相同且不为空
{
    $_SESSION["uid"] = $uid;
    header("location:liumain.php");
}

然后做一个主页面,主页面内容非常简单,就是发起流程和审核流程:

<body>
<h1>主页面</h1>

<div><a href="faqi.php">发起流程</a> <a href="shenhe.php">审核流程</a></div>
</body>

建好主页面后开始发起流程页面的设置:

发起流程用下拉列表显示:

<h1>发起流程</h1>
<form action="faqichuli.php" method="post">
<div>请选择发起的流程:
    <select name="lc">
        <?php
        require "DBDA.class.php";
        $db = new DBDA();
        $sql = "select * from liucheng";
        $arr = $db->query($sql);
        foreach($arr as $v)
        {
            echo "<option value=‘{$v[0]}‘>{$v[1]}</option>";//取出流程名称
        }
        ?>
    </select>
</div>
<br />
<div>请输入发起的内容:
    <textarea name="nr"></textarea>
    </div>
    <br />
    <input type="submit" value="发起" />
</form>

写发起处理页面:

<?php
session_start();
$code =$_POST["lc"];
$nr = $_POST["nr"];
$uid = $_SESSION["uid"];
$time = date("Y-m-d H:i:s",time());//将时间戳替换为格式化的时间

require "DBDA.class.php";
$db = new DBDA();
$sql = "insert into userflow values(‘‘,‘{$code}‘,‘{$uid}‘,‘{$nr}‘,0,‘{$time}‘,0)";
$db->query($sql,0);
header("location:liumain.php");//跳回主页面

发起后要进行审核,审核是一级级的审,下级没有通过的时候上级是不会看到的:

<h1>审核页面</h1>
<?php
session_start();
$uid = $_SESSION["uid"];//存储的用户名

require "DBDA.class.php";
$db = new DBDA();

$sql = "select * from userflow a where code in(select code from jiedian where uid=‘{$uid}‘) and towhere >=(select orders from jiedian b where b.code=a.code and b.uid=‘{$uid}‘ )" ;//这里用到了相关子查询,流程顺序是否已经到达该用户或已经被该用户审核过

$arr = $db->query($sql);
echo "<table width=‘100%‘ border=‘1‘ cellpadding=‘0‘ cellspacing=‘0‘>
    <tr>
        <td>流程代号</td>
        <td>发起者</td>
        <td>发起内容</td>
        <td>是否结束</td>
        <td>发起时间</td>
        <td>操作</td>
    </tr>
";
foreach($arr as $v)
{
    $zt = "<a href=‘liutongguo.php? code={$v[0]}‘>通过</a>";
    $sql = "select orders from jiedian where code=‘{$v[1]}‘ and uid=‘{$uid}‘";//通过用户名和代号找出顺序
    $wz = $db->strquery($sql);
    if($v[6]>$wz)
    {
        $zt = "<span style=‘color:green‘>已通过</span>";
    }
    //显示表中内容
    echo "<tr>
        <td>{$v[1]}</td>
        <td>{$v[2]}</td>
        <td>{$v[3]}</td>
        <td>{$v[4]}</td>
        <td>{$v[5]}</td>
        <td>{$zt}</td>
    </tr>";
}
echo "</table>";
?>

最后是通过处理页面:

<?php
$ids = $_GET["code"];
require "DBDA.class.php";
$db = new DBDA();
//让流程往下走
$sql = "update userflow set towhere = towhere+1 where ids=‘{$ids}‘";//审核通过后顺序加一,给到下一个人
$db->query($sql,0);

//判断流程是否结束
$sql = "select max(orders) from jiedian where code=( select code from userflow where ids=‘{$ids}‘)";//找出顺序中最大的数
$maxsx = $db->strquery($sql);

$sql = "select towhere from userflow where ids=‘{$ids}‘";
$towhere = $db->strquery($sql);

if($towhere>$maxsx)
{
    //如果结束了,修改状态
    $sql = "update userflow set isok = 1 where ids=‘{$ids}‘";
    $db->query($sql,0);
}

header("location:shenhe.php");

看一下效果:

审核人登录:

点击通过:

最终审核人:

通过后是否结束显示为1:

时间: 2024-12-18 12:50:02

php流程管理与审核的相关文章

流程管理概要

在ERP开发应用中,经常使用到流程管理.流程管理又细分为审批流程(工作流程)和业务流程(端到端流程). 审批流程最基本的一个形式是从一种状态转换为另一种状态,审批流程操作包括保存.提交.审核.反审核等.数据状态包括创建.审核中.已审核.重新审核等.应用场景如员工的请假审批流程,一.员工申请休假,保存请假单据,单据状态为创建:二.员工提交休假流程,单据状态为审核中:三.上级主管审核通过,单据状态为已审核:四.上级主管反审核,单据状态为重新审核. 业务流程是基本的一个形式是从一张单据生成另一张下级单

中国南车戚墅堰所 ——流程管理信息化建设

一:项目简介 1.客户介绍 中国南车戚墅堰机车车辆工艺研究所有限公司(以下简称"中国南车戚墅堰所")是中国南车股份有限公司旗下的一级子公司,始建于1959年.五十多年来,中国南车戚墅堰所始终与中国轨道交通装备事业发展同行,致力于轨道交通装备现代化.目前公司不仅服务于我国干线铁路运输和城市轨道交通,还利用轨道交通装备专有技术向延伸产业发展,已经进入了汽车零部件.工程机械.风力发电等市场领域.中国南车戚墅堰所坚持走"科研支撑产业,产业反哺科研"的良性发展道路,持续加大科

流程管理制度示例

第一章 总则 第一条 为加强某某连锁经营有限公司(以下简称"某")流程管理工作,建立和完善流程管理体系,规范流程制定程序,特制定本制度. 第二条 流程管理的原则 (一) 根据效率优先.兼顾风险的原则,让合适的人.在合适的时间.在适当的风险下做合适的事,从而更好地为公司创造价值: (二) 以部门为主体,推动部门发挥创新能力. 第三条 流程的管理模式 根据某组织结构及运营管理模式,管理流程主要实行公司级和部门级两级管理模式: (一) 跨部门间的流程由战略企划部负责组织建立和管理(该类流程以

流程管理与流程快速开发平台设计思路

1.前言 企业管理可能存在如下困惑: (1)无论如何进行分工方案的调整,依旧应对不了业务的变化,应对机制死板被动: (2)市场动态更新太快.形势复杂多变,管理漏洞百出,资源调配不合理,上下级沟通不畅影响效率: (3)流程反应速度太慢,满足不了客户需要,企业利润难以实现,流程重组乏力: (4)信息化系统烟囱林立,无法突破垂直管理壁垒: (5)没有一套适用的流程方案,难以建立优化体系,无法用有限的人力物力和时间达到最优利用 -- 咨询公司给出的方案: 企业在现代化发展中由于业务流程不合理,造成了多方

流程管理模板规范及相关表单

     之前一篇文章,我们介绍了流程管理制度示例, 今天我们来看一下流程模板,规范 流程模板说明书 流程目的 适用范围 流程描述 序号 责任部门或岗位 步骤描述 重要输入 重要输出 相关表单 相关制度文件 关键控制点 控制点: 控制目的: 控制手段: 控制依据: 控制点: 控制目的: 控制手段: 控制依据: 流程描述符号体系 流程描述规范 1. 单位名称.编制人.主管部门.参与部门.流程编号.流程名称.最后更新日期.版本号,根据具体情况填写: 2. 在流程图的"职能带"中明确各责任部

php实现简单的流程管理

流程管理,在各种系统中扮演很重要的地位,可以把设定好的流程放入系统中,规定好几个节点,只要所有节点都通过,就可以通过. 惯例,先看数据库: 我们首先做一个新建流程页面,先把节点做好 xinjian.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <

BPM流程管理软件比较

BPM流程平台是企业信息化过程中非常重要的基础平台,随着企业规模的增长,利用BPM流程平台进行企业业务的整合变得更加迫切,目前国内外的工作流系统层出不穷,行业标准多种多样,虽然工作流主要功能国内比较知名的工作流软件基本上都具备,但功能的侧重点各不相同,增加了企业对工作流或BPM选型难度,本人选用目前国内市场主流专业的工作流软件,从概念.工作流引擎.工作流过程建模工具.流程操作.工作流客户端架构.流程监控.表单设计器以及与应用程序的集成等方面进行分析和比较,帮助企业对工作流或BPM产品的选型. 一

NC外部统一流程管理平台方案

1.前言 NC是用友面向集团企业的世界级高端管理软件,目前NC基于8000家集团企业客户的实力,使其在同类产品市场占有率已经达到亚太第一,面向大型企业集团和成长中的集团企业的信息化需求,用友NC6的产品定位于大型企业管理与电子商务平台.他综合利用最新的互联网技术.云计算技术.移动应用技术等,通过构建大企业私有云来全面满足集团企业管理.全产业链管控和电子商务运营,为集团企业提供了一个全新的支持合规化应用需求和创新需求,以及个性化配置.集成.实施.运维.管理一体化的大型企业管理与电子商务平台,不断帮

流程管理主页设计及为管理提供的服务

目 录 流程管理主页设计目标及展现内容 设计目标 展现内容 主页展现草图 为员工服务界面 为领导服务界面 为中层领导服务界面 我的办公桌面服务 主界面布局设计 开发目录结构 界面展现及开发技术 HTML CSS 界面框架 JS包 层次结构 菜单及权限管理 主要功能展示时序图描述 流程目录 关注流程 业务流程管理是从业务流程建立和规范.业务流程优化.业务流程再造三个层次发展起来的,目前,已经发展到业务流程再造阶段,也是本次办公业务流程系统升级改造的重点,在优化370个流程的基础上,再造流程. 本次