PHP 流程管理
添加新流程页面:
<div>
请选择流程节点:<br /><br /> <?php
session_start();
include("../DBDA.class.php");
$db = new DBDA(); $suser ="select * from users";
$auser = $db->Query($suser); foreach($auser as $v)
{
echo "<input class='rd' type='radio' name='user' value='{$v[0]}' /> {$v[2]} ";
} ?> </div>
<br />
<div><input type="button" value="添加节点" id="jiedian" /></div>
<br /> <div>
<?php
$attr = array();
if(!empty($_SESSION["user"]))
{
$attr = $_SESSION["user"];
} 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='删除' bs='{$k}' class='shanchu' /></div>";
} ?>
</div>
<br />
<div>
请输入流程名称:
<input type="text" id="name" />
</div>
<br />
<input type="button" value="保存" id="xinjian" /> <script type="text/javascript">
$("#jiedian").click(function(){ //取选中的用户名
var uid ="";
var rd = $(".rd");
for(var i=0;i<rd.length;i++)
{
if(rd.eq(i).prop("checked"))
{
uid = rd.eq(i).val();
}
} $.ajax({
url:"chuli.php",
data:{uid:uid,type:0},
type:"POST",
dataType:"TEXT",
success: function(data){
window.location.href="add.php";
}
}); }) $(".shanchu").click(function(){
var sy = $(this).attr("bs");
$.ajax({
url:"chuli.php",
data:{sy:sy,type:1},
type:"POST",
dataType:"TEXT",
success: function(data){
window.location.href="add.php";
}
});
})
$("#xinjian").click(function(){
var name = $("#name").val();
$.ajax({
url:"chuli.php",
data:{name:name,type:2},
type:"POST",
dataType:"TEXT",
success: function(data){
window.location.href="add.php";
}
});
})
</script>
添加新流程(及其他)处理页面:
<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA(); $type = $_POST["type"]; switch($type)
{
case 0:
$uid = $_POST["uid"];
if(empty($_SESSION["user"]))
{
$_SESSION["user"] = array($uid);
}
else
{
$attr = $_SESSION["user"];
$attr[] = $uid;
$_SESSION["user"] = $attr;
}
break;
case 1:
$sy = $_POST["sy"];
$attr = $_SESSION["user"];
unset($attr[$sy]);
$attr = array_values($attr);
$_SESSION["user"] = $attr;
break;
case 2:
$name = $_POST["name"];
$code = time();
$slc = "insert into liucheng values('{$code}','{$name}')"; //liucheng 名字 代号
$db->Query($slc,0); $attr = array();
if(!empty($_SESSION["user"]))
{
$attr = $_SESSION["user"];
} foreach($attr as $k=>$v)
{
$sfp = "insert into flowpath values('','{$code}','{$v}','{$k}')"; //flowpath 流程具体经过哪些人
$db->Query($sfp,0);
} break;
case 3:
$code = $_POST["code"];
$nr = $_POST["nr"];
$uid = $_SESSION["uid"];
$rq = time();
$sql = "insert into userflow values('','{$code}','{$uid}','{$nr}',0,'{$rq}',0)"; //userflow 流程具体内容,名字,发起人
$db->Query($sql,0); //,内容,是否通过,事件,进行到哪一步
break;
}
登录后主页面:
<a href="faqi.php">发起流程</a> <table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>发起者</td>
<td>发起时间</td>
<td>流程名称</td>
<td>流程内容</td>
<td>是否结束</td>
<td>操作</td>
</tr>
<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA(); $uid = $_SESSION["uid"]; $sql = "select * from userflow";
$attr = $db->Query($sql); foreach($attr as $v)
{
$v[1];//流程代号
$v[6]; //流程走到哪了 //根据流程代号和当前登录者用户名查orders
$szai="select count(*) from flowpath where code='{$v[1]}' and uids='{$uid}'";
$n = $db->StrQuery($szai); //该人员在该流程下
if($n>0)
{
$sorder = "select orders from flowpath where code='{$v[1]}' and uids='{$uid}'";
$order = $db->StrQuery($sorder); if($v[6]>=$order)
{
$str = "";
if($v[6]==$order)
{
$str = "<a href='tongguo.php?ids={$v[0]}'>通过</a>";
}
else
{
$str = "<span style='color:green'>已处理</span>";
}
echo "<tr><td>{$v[2]}</td>
<td>{$v[5]}</td>
<td>{$v[1]}</td>
<td>{$v[3]}</td>
<td>{$v[4]}</td>
<td>{$str}</td></tr>";
}
}
} ?> </table>
发起流程页面:
<h1>发起流程</h1>
<div>
请选择要发起的流程:
<select id="sel">
<?php
include("../DBDA.class.php");
$db = new DBDA();
$sql = "select * from liucheng";
$attr = $db->Query($sql);
foreach($attr as $v)
{
echo "<option value='{$v[0]}'>{$v[1]}</option>";
}
?>
</select>
</div> <br />
<div>
请输入流程的详情:
<textarea id="xq"></textarea> </div> <br />
<input type="button" value="发起" id="btn" /> <script type="text/javascript">
$("#btn").click(function(){
var code = $("#sel").val();
var nr = $("#xq").val();
$.ajax({
url:"chuli.php",
data:{code:code,nr:nr,type:3},
type:"POST",
dataType:"TEXT",
success: function(data){
window.location.href="main.php";
}
});
})
</script>
判断发起的流程是否通过页面:
<?php
session_start();
include("../DBDA.class.php");
$db = new DBDA(); $ids = $_GET["ids"]; $sql = "update userflow set towhere = towhere+1 where ids='{$ids}'"; $db->Query($sql,0); $stw = "select code,towhere from userflow where ids='{$ids}'";
$atw = $db->Query($stw); $lcdaihao = $atw[0][0];
$towhere = $atw[0][1]; $jiedian = "select count(*) from flowpath where code='{$lcdaihao}'";
$shuliang = $db->StrQuery($jiedian); if($towhere>=$shuliang)
{
$su = "update userflow set isok =1 where ids='{$ids}' ";
$db->Query($su,0);
} header("location:main.php");
PHP 流程管理的更多相关文章
- 熊乐:H3 BPM为加速企业流程管理提供源动力
近日,在北京·金隅喜来登酒店,H3 BPM以"让天下没有难用的流程"为主题,正式发布H3 BPM10.0版本.全新的业务流程管理系统在易用性方面大大提升,并且全面支持Java与.N ...
- 从国内流程管理软件市场份额看中国BPM行业发展
随着互联网+.中国制造2025.工业4.0等国家战略的支持与引导,企业在数字经济时代的信息化表现惊人,越来越多企业认识到,对于企业的发展来说,信息自动化远远还不够,企业的战略.业务和IT之间需保持高度 ...
- 制造行业流程管理的“IPO”思维
流程管理是企业从流程角度出发,关注流程是否增值的一套管理体系.从认识流程.到建立流程.到管理流程.再到优化流程,企业管理人员要去除不增值和低价值的流程,减少员工犯错误的机会,建立一套卓越的流程体系. ...
- jquery miniui , 普加甘特图,流程管理
http://www.miniui.com/docs/quickstart/index.html 普加 甘特图 流程管理 http://www.plusgantt.com/project/demo/P ...
- JBPM4入门——4.封装流程管理的工具类(JbpmUtil)
本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...
- php之 有点复杂的 流程管理
1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一.还是要有数据库的内容的 肯定会有表的,首先就是用户表了,然后就是流程表,用 ...
- php流程管理练习
今天我们做一个流程管理: 1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一. 做这个流程管理肯定要有数据库: 二.数据库结束 ...
- PHP流程管理,堪比小小程序
这个流程管理是从用户登录界面开始,然后提交申请,页面逐级审核通过.这个做起来其实挺简单,只是在某些逻辑方面需要 好好考虑一下. 登录页面就不再多说了,如果要存session的话,我们可以建一个假的登录 ...
- 05、NetCore2.0依赖注入(DI)之Web应用启动流程管理
05.NetCore2.0依赖注入(DI)之Web应用启动流程管理 在一个Asp.net core 2.0 Web应用程序中,启动过程都做了些什么?NetCore2.0的依赖注入(DI)框架是如何管理 ...
- PHP实现流程管理功能
核心逻辑:流程管理,在各种系统中扮演很重要的地位,可以把设定好的流程放入系统中,规定好几个节点,只要所有节点都通过,就可以通过. 建立四张数据库表: 1.我们首先做一个新建流程页面 flow.php, ...
随机推荐
- 聊下 git 使用前的一些注意事项
连接方式https.ssh 在使用git的时候,不管你的服务器是开源平台github还是私服gitlab,你都需要clone仓库到本地,这个clone的时候就需要你选择连接方式.这个连接方式决定了你与 ...
- Spark基本工作流程及YARN cluster模式原理(读书笔记)
Spark基本工作流程及YARN cluster模式原理 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark基本工作流程 相关术语解释 Spark应用程序相关的几 ...
- sublime text3的一些插件安装方法和使用
sublime text部分插件使用方法在线安装package Control的方法: ctrl+~ 输入如下代码: import urllib2,os; pf='Package ...
- 报表开发导出各种格式文件的API
文件输出的多样性,准确性和稳定性对于我们常用的报表软件来说很重要.报表的输入是指从报表的模板文件(XML格式的)创建WorkBook对象,输出则指将报表保存为各种格式文件,比如Pdf.Excel.Wo ...
- 【2016-11-11】【坚持学习】【Day24】【WPF 自定义控件 附加属性 自定义事件】
UserControl ,自定义控件. 这里刚刚想到一个问题.什么时候应该用usercontrol 定义一个控件.什么时候应该重写控件的template和样式,实现新效果. 引用一下人家的话:http ...
- NOIP2013pj车站分级[拓扑排序]
题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级 别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车 次停靠了 ...
- vi快捷键
/** * eclipse内置快捷: * * * 导入包:Ctrl+Shift+O * Ctrl+T 查看一个类的继承关系树,是自顶向下的,再多按一次Ctrl+T, 会换成自底向上的显示结构. 提示: ...
- Hibernate第三次测试错题解析
此题目考查的是Hibernate查询缓存适用的场合,对于经常使用的查询语句, 如果启用了查询缓存,当第一次执行查询语句时,Hibernate会把查询结果存放在第二缓存中. 以后再次执行该查询语句时,只 ...
- python有超时的windows系统时间设置代码
手边的笔记本用久了,cmos电池可能又没电了.每次开机时间都不对,导致访问一些有https的网页会出现警告信息. 于是找了找通过python脚本设置系统时间的方法,发现了两种,其一是调用socket直 ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 总部业务部门主管管理整个集团分公司的某项业务
由于整个集团公司非常庞大,有上千个分支机构,不可能由总部某个人能管理所有的数据,或者掌握所有的业务.某个业务都会由于某个相应的部门进行管理,例如所有分公司的人力资源,都由总部的人力资源部门管理.哪些分 ...