5月29 流程

关于流程处理需要访问的数据库名有:Users,FlowPath,UserPath,LiuCheng

#流程表
create table LiuCheng
(
    Code varchar(50)primary key, #流程代号
    Name varchar(50) #流程名称
);
#流程对应节点表
create table FlowPath
(
    Ids int auto_increment primary key,    #节点代号
    Code varchar(50) references LiuCheng(Code), # 流程代号
    Uids varchar(50) references Users(UserName),#节点人员代号
    Orders int #节点次序号
);
#用户发起流程表
create table UserFlow
(
    Ids int auto_increment primary key,    #代号
    Code varchar(50) references LiuCheng(Code), # 流程代号
    Uid varchar(50) references Users(UserName),#发起人员代号
    Content text,#流程内容
    IsOk bit, #是否完成
    RiQi datetime, # 发起日期
    ToWhere int #流程到哪
);

实现流程的操作处理:

登录数据显示页面:denglu.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程的一些例题:登录</title>
</head>

<body>
<br />
<br />
<h1>登录</h1>
<form action="dengluchuli.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<br />
<div>密&nbsp;码&nbsp;:<input type="text" name="pwd" /></div>
<br />
<input type="submit" value="登录" />
</form>
</body>
</html>

登录数据处理页面:dengluchuli.php

<?php
session_start();
include("../DBDA.php");
$db = new DBDA();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];

$sql = "select count(*) from Users where Uid = ‘{$uid}‘ and Pwd = ‘{$pwd}‘";
$attr = $db->StrQuery($sql);

if($attr==1)
{
    header("location:main.php");
    $_SESSION["uid"] = $uid;
}
else
{
    header("location:denglu.php");
}

主页面:main.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程的一些例题:登录</title>
<style type="text/css">
*
{
    margin:0 auto;
    padding:0
}
.liucheng
{
    margin:10px;}
.zi
{
    margin:20px;}
</style>
</head>

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

<div class="liucheng">
    <div class="zi">
        <a href="xinjian4.php">新建流程</a>&nbsp;&nbsp;&nbsp;&nbsp;
        <a href="faqi5.php">发起流程</a>&nbsp;&nbsp;&nbsp;&nbsp;
        <a href="LCchuli6.php">流程处理</a>
    </div>
</div>
<br />
<br />
<a href="denglu.php">跳转到登录</a>
</body>
</html>

新建流程数据显示页面:xinjian4.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="../jquery-1.11.2.min.js"></script>
</head>

<body>
<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$attr = array();
if(!empty($_SESSION["jiedian"]))
{
    $attr = $_SESSION["jiedian"];    

}

?>
<h1>新建流程</h1>
<div>
    请选择节点人员:
    <?php
        $sry = "select * from users";
        $ary = $db->Query($sry);

        foreach($ary as $v)
        {
            echo "<input type=‘radio‘ class=‘ry‘ name=‘ry‘ value=‘{$v[0]}‘ />{$v[2]}";
        }
    ?>
</div>
<br />
<div>
    <input type="button" value="添加节点" id="tjjd" />
</div>
<br />
<div>
<?php
    foreach($attr as $k=>$v)
    {
        $sname = "select Name from Users where Uid = ‘{$v}‘";
        $name = $db->StrQuery($sname);

        echo "<div>{$k}--{$name}--<input type=‘button‘ value=‘删除‘ class=‘sc‘ bs=‘{$k}‘ /></div>";
    }

?>
</div>
<br />
<div>请输入流程名称:
    <input type="text" name="mc" id="mc" />
</div>
<br />
<div>
    <input type="button" value="添加" id="add" />
</div>
<br />
<a href="main.php">返回主页面</a>

</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
    //设置李四选中
    $(".ry").eq(2).prop("checked",true);

    //添加节点按钮点击事件
    $("#tjjd").click(function(){

        var rd = $(".ry");//找到单选按钮

        var uid = "";//空的uid
        for(var i=0;i<rd.length;i++)
        {
            if(rd.eq(i).prop("checked"))
            {
                uid = rd.eq(i).val();
            }
        }
        //调用ajax
            $.ajax({
                url:"tjjdchuli4.php",
                data:{uid:uid},
                dataType:"TEXT",
                type:"POST",
                success: function(data){

                    //alert(data);
                    window.location = "xinjian4.php";
                    }
                });

        })

    //删除节点的点击事件
    $(".sc").click(function(){

        var id = $(this).attr("bs");

            $.ajax({
                url:"scjdchuli4.php",
                data:{id:id},
                dataType:"TEXT",
                type:"POST",
                success: function(data){

                    window.location = "xinjian4.php";

                    }
                });
        })

    //添加流程按钮
    $("#add").click(function(){

        var name = $("#mc").val();

            $.ajax({
                url:"tjlcchuli4.php",
                data:{name:name},
                dataType:"TEXT",
                type:"POST",
                success: function(data){

                    if(data.trim()=="OK")
                    {
                        alert("添加成功");
                    }
                    else
                    {
                        alert("添加失败");
                    }
                    }
                });

        })

});
</script>

添加节点处理页面:tjjdchuli4.php

<?php
session_start();

$uid = $_POST["uid"];

if(empty($_SESSION["jiedian"]))//第一次添加节点
{
    $attr = array($uid);
    $_SESSION["jiedian"] = $attr;
}
else
{
    $attr = $_SESSION["jiedian"];
    array_push($attr,$uid);
    $_SESSION["jiedian"] = $attr;
}

删除节点处理页面:scjdchuli4.php

<?php
session_start();

$id = $_POST["id"];
$attr = $_SESSION["jiedian"];

unset($attr[$id]);
$attr = array_values($attr);

$_SESSION["jiedian"] = $attr;

添加流程名称处理页面:tjlcchuli4.php

<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$attr = array();//先定义空的数组
if(!empty($_SESSION["jiedian"]))
{
    $attr = $_SESSION["jiedian"];
}

$name = $_POST["name"];

//向流程表中添加数据
$code = date("YmdHis");
$slc = "insert into liucheng values(‘{$code}‘,‘{$name}‘)";
//判断是否执行成功的变量
$isok = true;

if($db->Query($slc,1))
{
    foreach($attr as $k=>$v)
    {
        //向流程对应的节点表添加数据
        $sfl = "insert into flowpath values(‘‘,‘{$code}‘,‘{$v}‘,{$k})";
        $isok = $isok && $db->Query($sfl,1);
    }
}
if($isok)
{
    echo "OK";
}
else
{
    echo "NO";
}

发起流程数据显示页面:faqi5.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>发起流程</title>
<script src="../jquery-1.11.2.min.js"></script>
</head>

<body>
<h1>发起流程</h1>
<?php

include("../DBDA.php");
$db = new DBDA();
?>
<div>请选择流程:
<select id="lc">
<?php
    $slc = "select * from liucheng";
    $alc = $db->Query($slc);

    foreach($alc as $v)
    {
        echo "<option value=‘{$v[0]}‘ />{$v[1]}</option>";
    }

?>
</select>
</div>
<br />
<div>请输入流程内容:
    <textarea id="nr" cols="30" rows="8"></textarea>

</div>
<br />
<div><input type="button" value="发起" id="fq" /></div>
<br />

<a href="main.php">返回</a>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(e) {
    $("#fq").click(function(){

        var code = $("#lc").val();
        var nr = $("#nr").val();

        $.ajax({
            url:"faqichuli5.php",
            data:{code:code,nr:nr},
            type:"POST",
            dataType:"TEXT",
            success: function(data){

                    if(data.trim()=="OK")
                    {
                        alert("添加成功");
                    }
                    else
                    {
                        alert("添加失败");
                    }

                }

            });

        })

});

</script>

发起流程数据处理页面:faqichuli5.php

<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$code = $_POST["code"];
$nr = $_POST["nr"];
$rq = date("Y-m-d H:i:s",time());
$uid = $_SESSION["uid"];

//echo $uid;

$sql = "insert into userflow values(‘‘,‘{$code}‘,‘{$uid}‘,‘{$nr}‘,false,‘{$rq}‘,0)";

if($db->Query($sql,1))
{
    echo "OK";
}
else
{
    echo "NO";
}

流程处理数据显示页面:LCchuli6.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程处理</title>
</head>

<body>
<?php
session_start();

include("../DBDA.php");
$db = new DBDA();

$uid = $_SESSION["uid"];
?>
<h1>审核流程</h1>
<br />
<a href="main.php">返回</a>
<br />
<br />

<br />
<table width="100%" cellpadding="0" cellspacing="0" border="1">
    <tr bgcolor="#0000FF" style="color:#FFF" align="center">
        <td>流程名称</td>
        <td>发起人</td>
        <td>内容</td>
        <td>是否结束</td>
        <td>发起时间</td>
        <td>操作</td>
    </tr>

    <?php

        /*$sfl = "select Code,Orders from FlowPath where Uids = ‘{$uid}‘";//做法会有误差时间,没有以时间降序排列不好看
        $afl = $db->Query($sfl);
        //var_dump($afl);
        foreach($afl as $v)
        {
            $suf = "select * from Userflow where Code = ‘{$v[0]}‘ and ToWhere >= ‘{$v[1]}‘";

            $auf = $db->Query($suf);
            //var_dump($auf);
            foreach($auf as $vuf)
            {
                echo "<tr align=‘center‘>
                        <td>{$vuf[1]}</td>
                        <td>{$vuf[2]}</td>
                        <td>{$vuf[3]}</td>
                        <td>{$vuf[4]}</td>
                        <td>{$vuf[5]}</td>
                        <td>操作</td>
                    </tr>";
            }
        }
    */

        //日期的降序排列
        $suf = "select * from UserFlow order by RiQi desc";
        $auf = $db->Query($suf);
        //var_dump($auf);

        foreach($auf as $vuf)
        {
            //$vuf[1]code
            //$vuf[6]towhere

            //根据流程的代号去flowpath表中查询
            $fql = "select Code,Orders from flowpath where Uids = ‘{$uid}‘ and Code = ‘{$vuf[1]}‘";
            $fattr = $db->Query($fql);
            //var_dump($fattr);
            if($fattr)
            {

                $ucode = $fattr[0][0];//流程代号
                $ucx = $fattr[0][1];//次序
                //判断该流程是否通过该用户
                if($vuf[1] == $ucode && $vuf[6] >= $ucx)
                {
                    $lnmae = Lname($db,$vuf[1]);
                    $fname = Fname($db,$vuf[2]);
                    //处理是否结束 isok布尔型的如果是true,$isok 随便定义
                    $isok =$vuf[4]?"<span style=‘background-color:red‘>已结束</span>":"<span style=‘color:blue‘>处理中</span>";

                    //处理操作
                    $chuli = "";
                    if($vuf[6]==$ucx)
                    {
                        $chuli = "<a href=‘shenhechuli6.php?id={$vuf[0]}‘>审核</a>";
                    }
                    else
                    {
                        $chuli = "<span style=‘color:red‘>已通过</span>";
                    }

                    echo "<tr align=‘center‘>
                        <td>{$lnmae}</td>
                        <td>{$fname}</td>
                        <td>{$vuf[3]}</td>
                        <td>{$isok}</td>
                        <td>{$vuf[5]}</td>
                        <td>{$chuli}</td>
                    </tr>";
                }
            }

        }

        //处理流程名的函数
        function Lname($db,$code)
        {
            $sql = "select Name from LiuCheng where Code = ‘{$code}‘";
            return $db->StrQuery($sql);

        }
        //处理发起人姓名的函数
        function Fname($db,$uid)
        {
            $sql = "select Name from Users where Uid = ‘{$uid}‘";
            return $db->StrQuery($sql);
        }

    ?>

</table>
</body>
</html>

审核处理页面:shenhechuli6.php

<?php

include("../DBDA.php");
$db = new DBDA();

$id = $_GET["id"];//主键

$sql = "update userflow set ToWhere = ToWhere+1 where Ids = ‘{$id}‘";
$attr = $db->Query($sql,1);

if($attr)
{
    //查看流程走到哪里了
    $stw = "select Code,ToWhere from UserFlow where Ids = ‘{$id}‘";
    $atw = $db->Query($stw);
    $code = $atw[0][0];  //流程号
    $towhere = $atw[0][1]; //到哪了

    //查询节点数量
    $sjd = "select count(*) from FlowPath where Code = ‘{$code}‘";
    $ajd = $db->StrQuery($sjd);

    //如果流程走到位置大于等于了该流程中节点的总数
    if($towhere>=$ajd)
    {
        $sok = "update userflow set Isok = true where Ids = ‘{$id}‘";
        $db->Query($sok,1);
    }
    header("location:LCchuli6.php");
}
else
{
    echo "审核失败";
}

显示的网页效果如下:

主页面:

新建流程:

发起流程

流程处理

时间: 2024-10-14 07:36:01

5月29 流程的相关文章

4月29日监理师课程作业

软考信息系统监理师:2016年4月29日作业 一.信息应用系统分析设计阶段监理 1.需求分析的进入条件是什么?(记) 答:①业主单位与承建单位正式签订建设合同, ②并对初步的项目开发计划达成一致意见. 2.需求分析的目标是什么? 答:需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求. 3.需求分析阶段的成果有哪些?(记) 答:①项目开发计划:②软件需求说明书:③软件质量保证计划:④软件配置管理计划: ⑤软件(初步)确认测试计划:

Oyk的ACM刷题记录(始于2015年2月29日,可能含剧透)

Online Judge 题目序号/题目 简单大意/题解 犯2情况 2月29日 SPOJ GSS1  不带更新区间最大子段和. 线段树维护 区间从左/右开始的最大值.区间最大值.区间和. 1.输出忘了换行. 2.打错了一个字母. SPOJ GSS2 区间不重复最大子段和. 离线维护s[i..now],线段树维护 区间历史最大值.区间历史最大更新值.区间现在最大值.区间现在更新值. 询问输出区间历史最大值. 1.线段树询问忘记写pushdown了. SPOJ TEST 输出所有42前的数. 1.不

编程之美-资格赛-2月29

简单模拟题 #include <iostream> #include <string> using namespace std; //判断是不是闰年 bool is(int year){ return year % 400 == 0?true: (year % 100 == 0?false:(year % 4 == 0?true:false)); } //判断结束日期是否不包括2月29 #define NO2 (in2Var1 < 3 && !(in2Var1

2月29日(编程之美2015资格赛)

时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: 1. 年份能被4整除但不能被100整除 2. 年份能被400整除 输入 第一行为一个整数T,表示数据组数. 之后每组数据包含两行.每一行格式为"month day, year",表示一个日期.month为{"January", "February",

7月29号=》301页-305页

13.5 运算符 JavaScript提供了相当丰富的运算符,运算符也是JavaScript语言的基础. 通过运算符,可以将变量连接成语句,语句是JavaScript代码中的执行单位. 下面依次介绍JavaScript中的运算符. 13.5.1 赋值运算符 =:即var num = 1; 13.5.2 算术运算符 +:即1+2 =3; -:即2-1 = 1; *:即2*2 =4; /:即4/2 = 2; %:即3%2=1; 13.5.3 位运算符 &:按位与. |:按位或. ~:按位非. ^:按

计算两日期间2月29日总数的Java程序

事先声明,本人仅仅是个计算机领域的新手,不久前开始学习Java.后来我接到了一份关于计算两日期间2月29日总数的编程作业,仓促之中我便写下了这个程序.由于之前可以说毫无编程经验,Java也仅仅是只学了一小部分.所以目前该程序尚未解决输入问题. 我解决这个问题的思路是: 编写一个方法(leapYear)用于判断某一年份是否为闰年: 编写另一个方法(dateExist)用于判断某一时期是否真实存在,在这方法中会引用到上个方法: 最后编写main方法,引用方法(dateExist)分别判断起始日期和终

实训第1天(12月29日)

一.目标 大家自选主题(建议毕业设计题目)进行系统开发和测试,并完成相关文档. 最终提交:(1)系统源代码:(2)实训报告:需求分析+系统设计+系统实现+系统测试. 二.进度安排 1.12月29日(周一),3-8节 完成需求分析和系统设计的文档,及相关代码. 2.12月31日(周三),1-7节 完成系统模板和首页的设计,以及实现一个功能模块. 3.1月4日(周日),1-8节 完成主要功能模块,更新完善文档. 4.1月5日(周一),1-10节 完成主要功能模块,更新完善文档. 5.1月6日(周二)

hihoCoder 1148 2月29日

时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定两个日期,计算这两个日期之间有多少个2月29日(包括起始日期). 只有闰年有2月29日,满足以下一个条件的年份为闰年: 1. 年份能被4整除但不能被100整除 2. 年份能被400整除 输入 第一行为一个整数T,表示数据组数. 之后每组数据包含两行.每一行格式为"month day, year",表示一个日期.month为{"January", "February",

软考信息系统监理师:2016年4月29日作业

软考信息系统监理师:2016年4月29日作业一.信息应用系统分析设计阶段监理1.需求分析的进入条件是什么?(记)2.需求分析的目标是什么?3.需求分析阶段的成果有哪些?(记)4.软件概要设计阶段的进入条件是什么?(记,并理解:加不加概要2字,答案均相同)5.软件详细设计阶段的进入条件是什么?6.描述算法除了流程图外,还有一些别的工具,如哪3种?7.软件设计阶段的成果是什么?(记)8.软件工程化要求以软件质量保证为核心,紧紧抓住哪8个主要环节?二.信息应用系统实施阶段监理1.编码阶段进入条件是什么