You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

749 lines
28 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections;
using System.Data;
using BP.DA;
using BP.Web;
using BP.En;
using BP.WF;
using BP.Port;
using BP.Difference;
namespace BP.Cloud.HttpHandler
{
/// <summary>
/// 页面功能实体
/// </summary>
public class App_Portal : BP.WF.HttpHandler.DirectoryPageBase
{
/// <summary>
/// 构造函数
/// </summary>
public App_Portal()
{
}
/// <summary>
/// 重置密码
/// </summary>
/// <returns></returns>
public string PasswordReset_Save()
{
string pass = this.GetRequestVal("Password");
string sid = this.GetRequestVal("Token");
BP.Cloud.Emp emp = new Emp();
emp.Retrieve("Token", sid);
emp.DoResetpassword(pass, pass);
return "重设成功,请您登录. http://" + BP.Cloud.Glo.SaasHost + "/index.htm";
}
public string PasswordReq_Save()
{
string val = this.GetRequestVal("Email");
BP.Cloud.Emp emp = new Emp();
QueryObject qo = new QueryObject(emp);
qo.AddWhere("No", val);
qo.addOr();
qo.AddWhere("Email", val);
int i = qo.DoQuery();
if (i == 0)
return "err@用户名或者E-mail输入错误.";
emp.Update();
string url = "http://" + BP.Cloud.Glo.SaasHost + "/App/Portal/PasswordReset.htm?Token=" +WebUser.Token;
string docs = "请您重设密码:";
docs += ",点击如下链接 <a href='" + url + "' target=_blank>" + url + "</a> , 或者将如下URL复制到您的浏览器;" + url;
//发送邮件.
SMS.SendEmailNowAsync(emp.Email, "科伦BPM云,密码重置.", docs);
return "请登录到邮箱[" + emp.Email + "],重设密码.";
}
/// <summary>
/// 获得菜单
/// </summary>
/// <returns></returns>
public string Home_Menu()
{
if (WebUser.No == null)
return "err@/App/index.htm?err=no_session";
//类别.
DataTable dtSort = new DataTable("Sorts");
dtSort.Columns.Add("No");
dtSort.Columns.Add("Name");
dtSort.Columns.Add("ICON");
//菜单.
DataTable dtMenu = new DataTable("Menus");
dtMenu.Columns.Add("No");
dtMenu.Columns.Add("Name");
dtMenu.Columns.Add("SortNo");
dtMenu.Columns.Add("ICON");
dtMenu.Columns.Add("Url");
#region 类别.
DataRow dr = dtSort.NewRow();
dr["No"] = "01";
dr["Name"] = "流程中心";
dr["ICON"] = "FlowCenter.png";
dtSort.Rows.Add(dr);
dr = dtSort.NewRow();
dr["No"] = "02";
dr["Name"] = "综合查询";
dr["ICON"] = "FlowSearch.png";
dtSort.Rows.Add(dr);
if (WebUser.IsAdmin)
{
dr = dtSort.NewRow();
dr["No"] = "03";
dr["Name"] = "系统管理";
dr["ICON"] = "System.png";
dtSort.Rows.Add(dr);
}
#endregion 类别.
#region 流程中心-菜单.
dr = dtMenu.NewRow();
dr["No"] = "Start";
dr["Name"] = "发起";
dr["SortNo"] = "01";
dr["Url"] = "/WF/Start.htm";
dr["ICON"] = "Start.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "Todolist";
dr["Name"] = "待办";
dr["SortNo"] = "01";
dr["Url"] = "/WF/Todolist.htm";
dr["ICON"] = "Todolist.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "Runing";
dr["Name"] = "未完成";
dr["SortNo"] = "01";
dr["Url"] = "/WF/Runing.htm";
dr["ICON"] = "Runing.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "CC";
dr["Name"] = "抄送";
dr["SortNo"] = "01";
dr["Url"] = "/WF/CC.htm";
dr["ICON"] = "CC.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "OneFlow";
dr["Name"] = "流程应用";
dr["SortNo"] = "01";
dr["Url"] = "/WF/Apps.htm";
dr["ICON"] = "FlowApp.png";
dtMenu.Rows.Add(dr);
#endregion 流程中心-菜单.
#region 流程查询-菜单.
dr = dtMenu.NewRow();
dr["No"] = "MyStartFlows";
dr["Name"] = "我发起的";
dr["SortNo"] = "02";
dr["Url"] = "/WF/Comm/Search.htm?EnsName=BP.WF.Data.MyStartFlows";
dr["ICON"] = "SearchMy.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "MyDeptFlows";
dr["Name"] = "我部门发起的";
dr["SortNo"] = "02";
dr["Url"] = "/WF/Comm/Search.htm?EnsName=BP.WF.Data.MyDeptFlows";
dr["ICON"] = "SearchMyDept.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "MyJoinFlows";
dr["Name"] = "我审批的";
dr["SortNo"] = "02";
dr["Url"] = "/WF/Comm/Search.htm?EnsName=BP.WF.Data.MyJoinFlows";
dr["ICON"] = "SearchMyCheck.png";
dtMenu.Rows.Add(dr);
#endregion 流程查询-菜单.
#region 系统管理-菜单.
if (WebUser.IsAdmin == true)
{
dr = dtMenu.NewRow();
dr["No"] = "Template";
dr["Name"] = "流程模版";
dr["SortNo"] = "03";
// dr["Url"] = "/App/FlowDesigner/Flows.htm";
dr["Url"] = "/WF/Apps.htm";
dr["ICON"] = "Template.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "TemplateShare";
dr["Name"] = "共享模版";
dr["SortNo"] = "03";
// dr["Url"] = "/AppTemplate/Default.htm";
dr["Url"] = "/WF/Comm/Search.htm?EnsName=BP.FrmTemplate.FrmExts";
dr["ICON"] = "Share.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "Org";
dr["Name"] = "组织结构";
dr["SortNo"] = "03";
dr["Url"] = "/GPM/Organization.htm";
dr["ICON"] = "Organization.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "Emps";
dr["Name"] = "人员台账";
dr["SortNo"] = "03";
dr["Url"] = "/WF/Comm/Search.htm?EnsName=BP.Cloud.EmpWebs";
dr["ICON"] = "Emps.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "StationTypes";
dr["Name"] = "角色类型维护";
dr["SortNo"] = "03";
dr["Url"] = "/WF/Comm/Ens.htm?EnsName=BP.Cloud.StationTypeExts";
dr["ICON"] = "StationTypes.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "Stations";
dr["Name"] = "角色维护";
dr["SortNo"] = "03";
dr["Url"] = "/WF/Comm/Ens.htm?EnsName=BP.Cloud.StationExts";
dr["ICON"] = "Stations.png";
dtMenu.Rows.Add(dr);
dr = dtMenu.NewRow();
dr["No"] = "OrgSetting";
dr["Name"] = "系统设置";
dr["SortNo"] = "03";
dr["Url"] = "/WF/Comm/RefFunc/En.htm?EnName=BP.Cloud.OrgSetting.Org&No=" + WebUser.OrgNo;
dr["ICON"] = "OrgSetting.png";
dtMenu.Rows.Add(dr);
//dr = dtMenu.NewRow();
//dr["No"] = "Invited";
//dr["Name"] = "邀请同事加入";
//dr["SortNo"] = "03";
//dr["Url"] = "/App/Portal/Invited.htm";
//dr["ICON"] = "Share.png";
//dtMenu.Rows.Add(dr);
}
#endregion 系统管理-菜单.
//组装数据.
DataSet ds = new DataSet();
ds.Tables.Add(dtSort);
ds.Tables.Add(dtMenu);
//返回数据.
return BP.Tools.Json.ToJson(ds);
}
/// <summary>
/// 初始化Home
/// </summary>
/// <returns></returns>
public string Home_Init()
{
Hashtable ht = new Hashtable();
ht.Add("UserNo", BP.Web.WebUser.No);
ht.Add("UserName", BP.Web.WebUser.Name);
//系统名称.
ht.Add("SysName", BP.Difference.SystemConfig.SysName);
ht.Add("CustomerName", BP.Difference.SystemConfig.CustomerName);
ht.Add("Todolist_EmpWorks", BP.WF.Dev2Interface.Todolist_EmpWorks);
ht.Add("Todolist_Runing", BP.WF.Dev2Interface.Todolist_Runing);
ht.Add("Todolist_Sharing", BP.WF.Dev2Interface.Todolist_Sharing);
ht.Add("Todolist_CCWorks", BP.WF.Dev2Interface.Todolist_CCWorks);
ht.Add("Todolist_Apply", BP.WF.Dev2Interface.Todolist_Apply); //申请下来的任务个数.
ht.Add("Todolist_Draft", BP.WF.Dev2Interface.Todolist_Draft); //草稿数量.
ht.Add("Todolist_Complete", BP.WF.Dev2Interface.Todolist_Complete); //完成数量.
ht.Add("UserDeptName", WebUser.FK_DeptName);
//我发起
MyStartFlows myStartFlows = new MyStartFlows();
QueryObject obj = new QueryObject(myStartFlows);
obj.AddWhere(MyStartFlowAttr.Starter, WebUser.No);
obj.addAnd();
//运行中\已完成\挂起\退回\转发\加签\批处理\
obj.addLeftBracket();
obj.AddWhere("WFState=2 or WFState=3 or WFState=4 or WFState=5 or WFState=6 or WFState=8 or WFState=10");
obj.addRightBracket();
obj.DoQuery();
ht.Add("Todolist_MyStartFlow", myStartFlows.Count);
//我参与
MyJoinFlows myFlows = new MyJoinFlows();
obj = new QueryObject(myFlows);
obj.AddWhere("Emps like '%" + WebUser.No + "%'");
obj.DoQuery();
ht.Add("Todolist_MyFlow", myFlows.Count);
return BP.Tools.Json.ToJsonEntityModel(ht);
}
public string Index_Init()
{
Hashtable ht = new Hashtable();
ht.Add("Todolist_Runing", BP.WF.Dev2Interface.Todolist_Runing); //运行中.
ht.Add("Todolist_EmpWorks", BP.WF.Dev2Interface.Todolist_EmpWorks); //待办
ht.Add("Todolist_CCWorks", BP.WF.Dev2Interface.Todolist_CCWorks); //抄送.
//本周.
ht.Add("TodayNum", BP.WF.Dev2Interface.Todolist_CCWorks); //抄送.
return BP.Tools.Json.ToJsonEntityModel(ht);
}
/// <summary>
/// 邀请码@lizhen 生成邀请连接与Img.
/// </summary>
/// <returns></returns>
public string Invited_Init()
{
return "";
}
public string Invited_CheckIsExit(string openID, string orgNo)
{
Emp emp = new Emp();
emp.No = orgNo + "_" + openID;
if (emp.RetrieveFromDBSources() == 1)
return "err@yijiaru";
return "";
}
/// <summary>
/// 增加人员 @lizhen.
/// </summary>
/// <param name="openID"></param>
/// <param name="orgNo"></param>
/// <param name="tel"></param>
/// <param name="empName"></param>
/// <param name="deptNo"></param>
/// <returns></returns>
public string Invited_AddEmp(string openID, string orgNo, string userNo, string tel, string empName, string deptNo)
{
Org org = new Org(orgNo);
Emp emp = new Emp();
emp.No = orgNo + "_" + openID;
if (emp.RetrieveFromDBSources() == 1)
return "err@该人员已经存在.";
//工号可以为空.
if (DataType.IsNullOrEmpty(userNo) == true)
userNo = tel;
emp.UserID = userNo;
emp.OpenID = openID;
emp.OrgNo = org.No;
emp.OrgName = org.Name;
emp.FK_Dept = deptNo;
emp.Name = empName;
emp.Tel = tel;
emp.Insert();
DeptEmp de = new DeptEmp();
de.FK_Dept = deptNo;
de.FK_Emp = emp.UserID;
de.OrgNo = orgNo;
de.setMyPK(FK_Dept + "_" + tel);
de.Insert();
return "增加成功.";
}
#region 登录界面.
/// <summary>
/// 登录.
/// </summary>
/// <returns></returns>
public string Login_Submit()
{
try
{
string userNo = this.GetRequestVal("TB_Adminer");
// string defaultpass = this.GetRequestVal("DefaultPass");
string pass = this.GetRequestVal("TB_PassWord2");
BP.Cloud.Emp emp = new BP.Cloud.Emp();
emp.No = userNo;
if (emp.RetrieveFromDBSources() == 0)
return "err@用户名或者密码错误.";
////设置默认登陆
//if (DataType.IsNullOrEmpty(defaultpass) == false)
//{
// if (emp.Pass != defaultpass)
// {
// return "err@用户名或者密码错误";
// }
//}
//else
//{
if (emp.CheckPass(pass) == false)
return "err@用户名或者密码错误.";
// }
string orgNo = this.GetRequestVal("OrgNo");
if (DataType.IsNullOrEmpty(orgNo) == true)
orgNo = emp.OrgNo;
//执行登录.
return LoginExt(emp, orgNo);
}
catch (Exception ex)
{
return "err@" + ex.Message;
}
}
/// <summary>
/// 获取用户下的组织
/// </summary>
/// <returns></returns>
public string User_OrgNos()
{
string userId = this.GetRequestVal("UserID");
if (DataType.IsNullOrEmpty(userId) == true)
return "err@请输入用户的登录账号";
string sql = " SELECT A.OrgNo as No,B.Name,B.OrgSta From Port_Emp A ,Port_Org B Where A.OrgNo=B.No AND UserID=" + SystemConfig.AppCenterDBVarStr + "UserID";
Paras ps = new Paras();
ps.Add("UserID", userId);
DataTable dt = DBAccess.RunSQLReturnTable(sql, ps);
if (dt.Rows.Count == 0)
return "err@账号输入错误或者该用户已经被禁用";
return BP.Tools.Json.ToJson(dt);
}
public string User_ChangeOrg()
{
string userId = this.GetRequestVal("UserID");
if (DataType.IsNullOrEmpty(userId) == true)
return "err@请输入用户的登录账号";
if (DataType.IsNullOrEmpty(this.OrgNo) == true)
return "err@组织编号不能为空";
BP.WF.Dev2Interface.Port_Login(userId, this.OrgNo);
return "切换成功";
}
public string LoginExt(BP.Cloud.Emp emp, string orgNo, string deptNo = null)
{
#region 求出来 orgNo .
//获取当前人员的所有部门集合.
DeptEmps des = new DeptEmps();
des.Retrieve(DeptEmpAttr.FK_Emp, emp.UserID);
//如果没有组织编号.
if (DataType.IsNullOrEmpty(orgNo) == true || orgNo == "undefined")
{
//没有参数就获得当前人员有多少个OrgNo ,如果有多个,就让其选择一个部门或者一个组织.
string sql = "SELECT DISTINCT OrgNo FROM Port_DeptEmp WHERE fk_emp='" + emp.No + "'";
DataTable dt = DBAccess.RunSQLReturnTable(sql);
if (dt.Rows.Count == 0)
return "err@登录用户没有组织信息,无法登录.";
if (dt.Rows.Count == 1)
orgNo = dt.Rows[0][0].ToString();
if (dt.Rows.Count > 1)
{
//调用登录方法.
BP.WF.Dev2Interface.Port_Login(emp.No);
return "url@SelectOneOrg.html";
}
}
else if (DataType.IsNullOrEmpty(orgNo) == false) //如果是传递来的组织参数.
{
/*检查当前登陆者是否在该组织下?*/
bool isHave = false;
foreach (DeptEmp de in des)
{
if (de.OrgNo == orgNo)
isHave = true;
}
if (isHave == false)
return "err@您没权限登录[" + orgNo + "]组织里.";
}
#endregion 求出来 orgNo .
#region 求出来 fk_dept.
//求出当前人员的主部门.
string fk_dept = null;
if (deptNo != null)
fk_dept = deptNo;
if (fk_dept == null)
{
foreach (DeptEmp de in des)
{
if (de.OrgNo == orgNo && de.IsMainDept == true)
{
fk_dept = de.FK_Dept;
break;
}
}
if (fk_dept == null)
return "err@当前人员,没有设置主部门.";
}
//如果当前人员的部门与求出来的部门不一致就更新Port_Emp表.
if (emp.FK_Dept != fk_dept)
{
emp.FK_Dept = fk_dept;
emp.Update();
}
#endregion 求出来 fk_dept.
BP.Cloud.Dev2Interface.Port_Login(emp);
//开始执行登录.
// BP.WF.Dev2Interface.Port_Login(emp.No);
return "登陆成功";
}
/// <summary>
/// 执行登录
/// </summary>
/// <returns></returns>
public string Login_Init()
{
string doType = GetRequestVal("LoginType");
if (DataType.IsNullOrEmpty(doType) == false && doType.Equals("Out") == true)
{
//清空cookie
WebUser.Exit();
}
Hashtable ht = new Hashtable();
ht.Add("SysName", BP.Difference.SystemConfig.SysName);
ht.Add("ServiceTel", BP.Difference.SystemConfig.ServiceTel);
ht.Add("CustomerName", BP.Difference.SystemConfig.CustomerName);
if (WebUser.NoOfRel == null)
{
ht.Add("UserNo", "");
ht.Add("UserName", "");
}
else
{
ht.Add("UserNo", WebUser.No);
string name = WebUser.Name;
if (DataType.IsNullOrEmpty(name) == true)
ht.Add("UserName", WebUser.No);
else
ht.Add("UserName", name);
}
return BP.Tools.Json.ToJsonEntityModel(ht);
}
#endregion 登录界面.
#region SelectOneOrg.
public string SelectOneOrg_Init()
{
DeptEmps des = new DeptEmps();
des.Retrieve(DeptEmpAttr.FK_Emp, WebUser.No);
DataTable dt = new DataTable();
dt.Columns.Add("DeptNo");
dt.Columns.Add("DeptName");
dt.Columns.Add("OrgNo");
dt.Columns.Add("OrgName");
dt.Columns.Add("IsAdmin");
foreach (DeptEmp item in des)
{
DataRow dr = dt.NewRow();
//部门信息.
Dept dept = new Dept(item.FK_Dept);
dr["DeptNo"] = dept.No;
dr["DeptName"] = dept.Name;
//组织.
Org org = new Org(dept.OrgNo);
dr["OrgNo"] = org.No;
dr["OrgName"] = org.Name;
//检查是否是admin.
BP.WF.Port.Admin2Group.OrgAdminers admins = new BP.WF.Port.Admin2Group.OrgAdminers();
admins.Retrieve(BP.WF.Port.Admin2Group.OrgAdminerAttr.OrgNo, org.No,
BP.WF.Port.Admin2Group.OrgAdminerAttr.FK_Emp, WebUser.No);
//数量.
dr["IsAdmin"] = admins.Count;
dt.Rows.Add(dr);
}
return BP.Tools.Json.ToJson(dt);
}
public string SelectOneOrg_Selected()
{
string deptNo = this.GetRequestVal("DeptNo");
DeptEmp de = new DeptEmp();
int i = de.Retrieve(DeptEmpAttr.FK_Emp, WebUser.No, DeptEmpAttr.FK_Dept, deptNo);
if (i == 0)
return "err@您没有此部门的权限.";
string no = de.OrgNo + "_" + WebUser.No;
BP.Cloud.Emp emp = new Cloud.Emp();
emp.No = no;
if (emp.RetrieveFromDBSources() == 0)
return "err@人员错误:" + no;
emp.FK_Dept = deptNo;
emp.OrgNo = de.OrgNo;
emp.Update();
//执行登录.
BP.Cloud.Dev2Interface.Port_Login(emp.UserID, emp.OrgNo);
// string token=BP.WF.Dev2Interface.Port_GenerToken(User.)
var url = "/App/Portal/Home.htm?OrgNo=" + emp.OrgNo + "&UserNo=" + emp.No + "&Token=" + WebUser.Token;
return url;
}
#endregion SelectOneOrg.
/// <summary>
/// 获取当前用户最近使用的流程表单
/// </summary>
/// <returns></returns>
public string GetUseFlowByUserNo()
{
string sql = "";
int top = GetRequestValInt("Top");
if (top == 0) top = 4;
switch (BP.Difference.SystemConfig.AppCenterDBType)
{
case DBType.MSSQL:
sql = " SELECT TOP " + top + " FK_Flow,FlowName,F.Icon FROM WF_GenerWorkFlow G ,WF_Flow F WHERE F.No=G.FK_Flow AND Starter='" + WebUser.No + "' AND G.OrgNo='" + WebUser.OrgNo + "' GROUP BY FK_Flow,FlowName,ICON ORDER By Max(SendDT) DESC";
break;
case DBType.MySQL:
case DBType.PostgreSQL:
case DBType.UX:
sql = " SELECT DISTINCT FK_Flow,FlowName,F.Icon FROM WF_GenerWorkFlow G ,WF_Flow F WHERE F.No=G.FK_Flow AND Starter='" + WebUser.No + "' AND G.OrgNo='" + WebUser.OrgNo + "' Order By SendDT limit " + top;
break;
case DBType.Oracle:
case DBType.DM:
case DBType.KingBaseR3:
case DBType.KingBaseR6:
sql = " SELECT * From (SELECT DISTINCT FK_Flow as \"FK_Flow\",FlowName as \"FlowName\",F.Icon ,max(SendDT) SendDT FROM WF_GenerWorkFlow G ,WF_Flow F WHERE F.No=G.FK_Flow AND Starter='" + WebUser.No + "' AND G.OrgNo='" + WebUser.OrgNo + "' GROUP BY FK_Flow,FlowName,ICON Order By SendDT) WHERE rownum <=" + top;
break;
default:
throw new Exception("err@系统暂时还未开发使用" + BP.Difference.SystemConfig.AppCenterDBType + "数据库");
}
DataTable dt = DBAccess.RunSQLReturnTable(sql);
return BP.Tools.Json.ToJson(dt);
}
/// <summary>
/// 当前登陆用户的信息
/// </summary>
/// <returns></returns>
public string GetUserInfo()
{
Hashtable ht = new Hashtable();
string userNo = Web.WebUser.No;
if (DataType.IsNullOrEmpty(userNo) == true)
return "";
ht.Add("No", WebUser.No);
ht.Add("Name", WebUser.Name);
ht.Add("FK_Dept", WebUser.FK_Dept);
ht.Add("FK_DeptName", WebUser.FK_DeptName);
ht.Add("FK_DeptNameOfFull", WebUser.FK_DeptNameOfFull);
string sql = "SELECT S.Name From Port_DeptEmpStation D,Port_Station S Where D.FK_Dept='" + WebUser.FK_Dept + "' AND D.FK_Station=S.No";
string stations = DBAccess.RunSQLReturnStringIsNull(sql, "");
ht.Add("FK_Stations ", stations.Replace(",", " "));
ht.Add("OrgName", WebUser.OrgName);
return BP.Tools.Json.ToJson(ht);
}
/// <summary>
/// Main.htm页面中待办、抄送、退回、逾期的数量
/// </summary>
/// <returns></returns>
public string GetToListCount()
{
Hashtable ht = new Hashtable();
//待办的总数量
ht.Add("EmpWorks", BP.Cloud.Dev2Interface.Todolist_EmpWorks);
//抄送数量
ht.Add("CCs", BP.Cloud.Dev2Interface.Todolist_CCWorks);
//退回数量
ht.Add("ReturnWorks", BP.Cloud.Dev2Interface.Todolist_ReturnNum);
//逾期数量
ht.Add("OverTimeWorks", BP.Cloud.Dev2Interface.Todolist_OverWorkNum);
return BP.Tools.Json.ToJson(ht);
}
/// <summary>
/// 获取我发起未完成的待办的流程
/// 我参与的,我发起的,本部门发起的流程分析
/// </summary>
/// <returns></returns>
public string FlowAnalyse_DataSet()
{
DataSet ds = new DataSet();
//当前用户发起未完成的流程
Paras ps = new Paras();
string str = BP.Difference.SystemConfig.AppCenterDBVarStr;
//获取待办、在途、已完成
ps.SQL = "SELECT * FROM(select WorkID,'todolist' as RunningType,E.StarterName,E.Title,E.RDT,E.FK_Node,E.FK_Flow,E.FID,E.WFState,F.ICON from WF_EmpWorks E,WF_Flow F WHERE E.FK_Flow=F.No AND"
+ " FK_Emp=" + str + "FK_Emp AND E.OrgNo=" + str + "OrgNo union SELECT DISTINCT a.WorkID,'running' as RunningType,a.StarterName,a.Title,a.RDT,a.FK_Node,a.FK_Flow,a.FID,a.WFState,F.ICON "
+ " FROM WF_GenerWorkFlow A,WF_GenerWorkerlist B,WF_Flow F WHERE A.WorkID=B.WorkID AND A.FK_Flow=F.No AND B.FK_Emp=" + str + "EMP AND A.OrgNo=" + str + "OrgNo AND "
+ " B.IsEnable=1 AND (B.IsPass=1 or B.IsPass < -1 ) AND A.Starter=" + str + "Starter union "
+ "SELECT T.WorkID,'complete' as RunningType,T.StarterName,T.Title,T.RDT,T.FK_Node,T.FK_Flow,T.FID ,T.WFState,F.ICON FROM WF_GenerWorkFlow T,WF_Flow F WHERE T.FK_Flow=F.No AND"
+ " (T.Emps LIKE '%@" + WebUser.No + "@%' OR T.Emps LIKE '%@" + WebUser.No + ",%') AND T.FID=0 "
+ "AND T.WFState=3 AND T.OrgNo=" + str + "OrgNo) T ORDER BY RDT DESC";
//替换参数
ps.Add("FK_Emp", WebUser.No);
ps.Add("EMP", WebUser.No);
ps.Add("Starter", WebUser.No);
ps.Add("OrgNo", WebUser.OrgNo);
//返回json
DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(ps);
dt.TableName = "Running";
ds.Tables.Add(dt);
//我发起的流程
string sql = "SELECT G.FlowName AS \"name\", count(G.WorkID) as \"value\" FROM WF_GenerWorkFlow G WHERE G.OrgNo='" + WebUser.OrgNo + "' AND G.Starter='" + WebUser.No + "' GROUP BY G.FlowName";
dt = DBAccess.RunSQLReturnTable(sql);
dt.TableName = "MyStartFlow";
ds.Tables.Add(dt);
//我参与的流程
sql = "SELECT G.FlowName AS \"name\", count(G.WorkID) as \"value\" FROM WF_GenerWorkFlow G WHERE G.OrgNo='" + WebUser.OrgNo + "' AND (G.Emps LIKE '%@" + WebUser.No + "@%' OR G.Emps LIKE '%@" + WebUser.No + ",%') GROUP BY G.FlowName";
dt = DBAccess.RunSQLReturnTable(sql);
dt.TableName = "MyJoinFlow";
ds.Tables.Add(dt);
//我部门发起的流程
sql = "SELECT G.FlowName AS \"name\", count(G.WorkID) as \"value\" FROM WF_GenerWorkFlow G WHERE G.OrgNo='" + WebUser.OrgNo + "' AND G.FK_Dept='" + WebUser.FK_Dept + "' GROUP BY G.FlowName";
dt = DBAccess.RunSQLReturnTable(sql);
dt.TableName = "MyDeptFlow";
ds.Tables.Add(dt);
return BP.Tools.Json.ToJson(ds);
}
}
}