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, ...
随机推荐
- Vmware扩展磁盘如何不需重启系统
在虚拟机Vmware中我们有时候需要添加新的虚拟磁盘或给已有虚拟磁盘扩容(expand),在新增磁盘或磁盘扩容后,Linux系统并不能马上识别到.也就是说你看不到磁盘空间变化(使用fdisk -l查看 ...
- RAC异机恢复
RAC异机恢复PDCL到PFCL: PNCL:RAC+ASM ,product env db name:PNCL instance:PDCL1 PDCL2 PFCL:RAC+ASM ,perf ...
- 遇到shell重定向的一个奇怪问题:'消失'的标准输入!
需求: 把找到的文件逐行输出,然后用rm在许可的情况下删除 前置准备: $ls rm.sh test1 test2 test3 test4 test5 test6 $cat rm.sh #! / ...
- Java日志框架:SLF4J,Common-Logging,Log4J,Logback说明
Log4j Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等 ...
- 【转】What is an SDET? Part 2 – Skill Matrix of SDET
What is an SDET? Part 2 ---- Skill Matrix of SDET (Instead of naming it as part 2 of What is an SDET ...
- 去掉windows8.1鸡肋的开始按钮
无开始按钮了,win8.1的 开始按钮反而非常鸡肋.. 可以使用我分享的链接下载startisgone: http://download.csdn.net/detail/wangallan/89728 ...
- 报表软件JS开发引用HTML DOM的location和document对象
上一次提到,在报表软件FineReport的JavaScript开发中,可以访问并处理的HTML DOM对象有windows.location.document三种.这次就继续介绍后两种,locati ...
- OAuth协议——PHP第三方登陆协议
慕课网Badguy老师的良心课程! 总会有那种什么都不想干的时候,但现在的日子又不这么允许个人的放纵,我一般就只有这几个选择:看课程视频,看书,看小说..好像还是有可以做的事情.其中,看课程视频有点无 ...
- CNI插件源码示例,对于github.com/rajatchopra/ocicni库的分析
CNI插件初始化 // ocicni.go 1.func InitCNI(pluginDir string) (CNIPlugin, error) (1).先调用plugin := probeNetw ...
- 基于移动端Reactive Native轮播组件的应用与开发详解
总结下这段时间学习reactive native的一些东西,我们来认识一下,被炒得这么火的rn,究竟是个什么东西,以及如何去搭建自己的demo. reactive native是什么 由facebo ...