//ps.SQL = "SELECT count(b.WorkID) as Num FROM WF_Generworkflow a JOIN WF_GenerWorkerList b ON a.WorkID=b.WorkID WHERE b.FK_Emp=" + dbstr + "FK_Emp AND b.IsPass=0 AND a.WFState <> 0 " + wfSql;
ps.SQL="SELECT count(WorkID) as Num FROM WF_EmpWorks where WFSTATE>1 and Tasksta = 0 AND FK_Emp ="+dbstr+" FK_Emp "+wfSql;
ps.Add("FK_Emp",userNo);
returnDBAccess.RunSQLReturnValInt(ps);
//获得授权信息.
Authsaths=newAuths();
aths.Retrieve(AuthAttr.AutherToEmpNo,userNo);
stringsql="SELECT A.*, null as Auther FROM WF_EmpWorks A WHERE TaskSta <0 AND A.FK_Emp='"+userNo+"' ";
//ps.SQL = "SELECT count(b.WorkID) as Num FROM WF_Generworkflow a JOIN WF_GenerWorkerList b ON a.WorkID=b.WorkID WHERE b.FK_Emp=" + dbstr + "FK_Emp AND b.IsPass=0 AND a.WFState <> 0 " + wfSql;
ps.SQL="SELECT count(WorkID) as Num FROM WF_EmpWorks where WFSTATE >1 and Tasksta = 0 AND FK_Emp = "+dbstr+" FK_Emp "+wfSql;
ps.Add("FK_Emp",userNo);
nums=DBAccess.RunSQLReturnValInt(ps);
//获得授权信息.
Authsaths=newAuths();
aths.Retrieve(AuthAttr.AutherToEmpNo,userNo);
stringsql="SELECT A.*, null as Auther FROM WF_EmpWorks A WHERE TaskSta <0 AND A.FK_Emp='"+userNo+"' ";
stringsql="SELECT MyPK,FK_Emp,FK_Node,Tag FROM WF_SelectCallers WHERE FK_Node = "+toNodeID+" AND FK_Emp = '"+WebUser.No+"'";
DataTabledt=DBAccess.RunSQLReturnTable(sql);
foreach(DataRowitemindt.Rows)
selectEmps+=item[1].ToString()+",";
string[]empStrs=emps.Split(',');
if(empStrs.Length==0)return;
#region 筛选需要执行的任务
dt=DBAccess.RunSQLReturnTable("Select e.FK_Dept, e.No as UserID, e.Name, d.Name as FK_DeptText from Port_Emp e left join port_dept d on e.FK_Dept = d.No where e.No IN ('"+String.Join("','",empStrs)+"')");
//sql = "SELECT WorkID,FK_Emp,FK_Node,WhoExeIt From WF_GenerWorkerlist WHERE FK_Emp='" + WebUser.No + "' AND ((IsPass=0 AND WhoExeIt=1) OR IsPass=1) AND IsEnable=1 AND WorkID=" + this.WorkID;
//BKGY 撤销发送
sql="SELECT WorkID,FK_Emp,FK_Node,IsPass From WF_GenerWorkerlist WHERE WorkID=" +this.WorkID+" And FK_Node='"+gwf.NodeID+"'";
sql="SELECT WorkID,FK_Emp,FK_Node,WhoExeIt,IsPass,FK_Emp From WF_GenerWorkerlist WHERE WorkID=" +this.WorkID+" And FK_Node='"+gwf.NodeID+"'";
DBAccess.RunSQL("UPDATE WF_SELECTCALLERS SET STA=1 WHERE MYPK='"+toNodeID+"_"+caller+"_"+WebUser.No+"'");
}
//ps.Add("FK_Emp", empNo);
//ps.SQL = "SELECT count(FK_Emp) as Num FROM WF_SelectCallers WHERE FK_Node=" + SystemConfig.AppCenterDBVarStr + "FK_Node AND FK_Emp=" + SystemConfig.AppCenterDBVarStr + "FK_Emp ORDER BY IDX";
ps.SQL="SELECT count(WorkID) as Num FROM WF_GenerWorkerlist WHERE IsPass=0 AND FK_Node="+dbStr+"FK_Node AND WorkID="+dbStr+"WorkID AND FK_Emp = '"+ath.Auther+"'";
ps.Clear();
ps.Add("FK_Node",this.HisNode.NodeID);
ps.Add("WorkID",this.WorkID);
intnum=DBAccess.RunSQLReturnValInt(ps,0);
if(num>0)
{
ps.SQL="UPDATE WF_GenerWorkerlist SET IsPass=1,IsRead=1 WHERE WorkID="+dbStr+"WorkID AND FK_Emp='"+ath.Auther+"' AND FK_Node="+dbStr+"FK_Node";
DBAccess.RunSQL("UPDATE WF_GenerWorkerlist SET IsPass=0 WHERE WorkID="+this.WorkID+" AND FK_Node="+gwf.NodeID+" AND FK_Emp='"+WebUser.No+"'");
return"撤销成功";
}
}
//如果启用了对方已读,就不能撤销.
@ -534,6 +535,7 @@ namespace BP.WF
if(i>=1)
return"err@当前待办已经有["+i+"]个工作人员打开了该工作,您不能撤销.";
}
if(this.UnSendToNode!=nd.NodeID){
//对方已审批就不能撤销
intcount=DBAccess.RunSQLReturnValInt("SELECT SUM(IsPass) AS Num FROM WF_GenerWorkerlist WHERE IsPass=1 AND (WorkID="+this.WorkID+" OR WorkID="+this.FID+") AND FK_Node="+gwf.NodeID+" AND FK_Emp!='"+WebUser.No+"'",0);
if(count>=1)
@ -541,6 +543,8 @@ namespace BP.WF
return"err@当前待办已经有["+count+"]个工作人员处理了该工作,您不能撤销.";
}
}
#region 如果是越轨流程状态 .
stringsql="SELECT COUNT(*) AS Num FROM WF_GenerWorkerlist WHERE WorkID="+this.WorkID+" AND IsPass=80";
if(DBAccess.RunSQLReturnValInt(sql,0)!=0)
@ -658,6 +662,14 @@ namespace BP.WF
cancelToNodeID,WebUser.No);
gwl.PassInt=0;
gwl.Update();
//撤销后后写入最新待办数量@BKGY
sql="";
sql="INSERT INTO WEB_SOCKET (ID,USER_NO,EmpWorksNums,Flag) ";