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.

270 lines
8.9 KiB
Plaintext

9 months ago
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using System.Web;
using BP.DA;
using BP.Sys;
using BP.Web;
using BP.Port;
using BP.En;
using BP.WF;
using BP.WF.Template;
using BP.WF.XML;
using BP.Difference;
using System.Collections;
namespace BP.Cloud.HttpHandler
{
/// <summary>
/// 页面功能实体
/// </summary>
public class Admin : BP.WF.HttpHandler.DirectoryPageBase
{
/// <summary>
/// 构造函数
/// </summary>
public Admin()
{
}
#region 执行父类的重写方法.
#endregion 执行父类的重写方法.
#region 界面 .
public string Register_Init()
{
return "注册页面";
}
#endregion xxx 界面方法.
public string Organization_CreateOrg()
{
string orgNo = this.GetRequestVal("OrgNo");
string orgName = this.GetRequestVal("OrgName");
return Dev2Interface.Port_CreateOrg(orgNo, orgName);
}
/// <summary>
/// 登录
/// </summary>
/// <returns></returns>
public string Login_AdminOnlySaas()
{
if (SystemConfig.CCBPMRunModel != CCBPMRunModel.SAAS)
return "err@必须是saas模式才能使用此接口登陆.";
try
{
string userNo = this.GetRequestVal("TB_No");
if (userNo == null)
userNo = this.GetRequestVal("TB_UserNo");
string pass = this.GetRequestVal("TB_PW");
if (pass == null)
pass = this.GetRequestVal("TB_Pass");
//从数据库里查询.
BP.Port.Emp emp = new BP.Port.Emp();
emp.No = "admin";
if (emp.RetrieveFromDBSources() == 0)
return "err@丢失了admin用户.";
if (emp.CheckPass(pass) == false)
return "err@用户名密码错误.";
BP.WF.Dev2Interface.Port_Login("admin", "100");
string token = BP.WF.Dev2Interface.Port_GenerToken();
WebUser.Token = token;
Hashtable ht = new Hashtable();
ht.Add("Token", token);
return BP.Tools.Json.ToJson(ht);
}
catch (Exception ex)
{
return "err@" + ex.Message;
}
}
/// <summary>
/// 登录的时候判断.
/// </summary>
/// <returns></returns>
public string Login_Submit()
{
BP.Port.Emp emp = new BP.Port.Emp();
emp.No = this.GetRequestVal("TB_Adminer").Trim();
if (emp.RetrieveFromDBSources() == 0)
return "err@用户名或密码错误.";
string pass = this.GetRequestVal("TB_PassWord2").Trim();
if (emp.CheckPass(pass) == false)
return "err@用户名或密码错误.";
//让其登录.
BP.Web.GuestUser.Exit();
BP.WF.Dev2Interface.Port_Login(emp.No);
string token = BP.WF.Dev2Interface.Port_GenerToken("PC");
//判断当前管理员有多少个企业.
Depts depts = new Depts();
depts.Retrieve("Adminer", emp.No);
//如果部门为0就让其注册.
if (depts.Count == 0)
return "url@/RegisterOrg.html";
//如果只有一个部门.
if (depts.Count == 1)
{
var dept = depts[0] as Dept;
emp.FK_Dept = dept.No;
emp.Update();
return "url@/Admin/Portal/Default.htm?Token=" + token + "&UserNo=" + emp.No;
}
//转入到选择一个企业的页面.
return "url@/Admin/Portal/SelectOneInc.htm?Token=" + token + "&UserNo=" + emp.No;
}
/// <summary>
/// 查询可以登录的企业.
/// </summary>
/// <returns></returns>
public string SelectOneInc_Init()
{
Depts depts = new Depts();
depts.Retrieve(DeptAttr.Adminer, WebUser.No);
return depts.ToJson();
}
public string SelectOneInc_SelectIt()
{
string no = this.GetRequestVal("No");
Emp emp = new Emp(WebUser.No);
emp.FK_Dept = no;
emp.Update();
return "url@Admin/Portal/Default.htm?Token=" + BP.Web.WebUser.Token + "&UserNo=" + emp.No;
}
/// <summary>
/// 要返回的数据.
/// </summary>
/// <returns></returns>
public string Default_Init()
{
return "";
}
/// <summary>
/// 流程树
/// </summary>
/// <returns></returns>
public string Default_FlowsTree()
{
//组织数据源.
string sql = "SELECT * FROM (SELECT 'F'+No as NO,'F'+ParentNo PARENTNO, NAME, IDX, 1 ISPARENT,'FLOWTYPE' TTYPE, -1 DTYPE FROM WF_FlowSort WHERE OrgNo='" + WebUser.FK_Dept +
"' union SELECT NO, 'F'+FK_FlowSort as PARENTNO,(NO + '.' + NAME) as NAME,IDX,0 ISPARENT,'FLOW' TTYPE, 0 as DTYPE FROM WF_Flow) A ORDER BY DTYPE, IDX ";
DataTable dt = DBAccess.RunSQLReturnTable(sql);
//判断是否为空如果为空则创建一个流程根结点added by liuxc,2016-01-24
if (dt.Rows.Count == 0)
{
FlowSort fs = new FlowSort();
fs.No = "99";
fs.ParentNo = "0";
fs.Name = "流程树";
fs.Insert();
dt.Rows.Add("F99", "F0", "流程树", 0, 1, "FLOWTYPE", -1);
}
else
{
DataRow[] drs = dt.Select("NAME='流程树'");
if (drs.Length > 0 && !Equals(drs[0]["PARENTNO"], "F0"))
drs[0]["PARENTNO"] = "F0";
}
String str = BP.Tools.Json.ToJson(dt);
return str;
}
/// <summary>
/// 查询表单树
/// </summary>
/// <returns></returns>
public string Default_FrmTree()
{
//组织数据源.
string sqls = "";
/* sqls = "SELECT No,ParentNo,Name, Idx FROM Sys_FormTree WHERE OrgNo=" + WebUser.FK_Dept + " ORDER BY Idx ASC ";
sqls += "SELECT No, FK_FormTree as ParentNo,Name,Idx,0 IsParent FROM Sys_MapData ";*/
sqls = "SELECT No,ParentNo,Name, Idx, 1 IsParent, 'FORMTYPE' TType FROM Sys_FormTree WHERE OrgNo='" + WebUser.FK_Dept + "' ORDER BY Idx ASC ; ";
sqls += "SELECT No, FK_FormTree as ParentNo,Name,Idx,0 IsParent, 'FORM' TType FROM Sys_MapData WHERE AppType=0 AND FK_FormTree IN (SELECT No FROM Sys_FormTree WHERE OrgNo='" + WebUser.FK_Dept + "') ORDER BY Idx ASC";
DataSet ds = DBAccess.RunSQLReturnDataSet(sqls);
DataTable dtSort = ds.Tables[0]; //类别表.
DataTable dtForm = ds.Tables[1].Clone(); //表单表,这个是最终返回的数据.
//增加顶级目录.
DataRow[] rowsOfSort = dtSort.Select("ParentNo='0'");
DataRow drFormRoot = dtForm.NewRow();
drFormRoot[0] = rowsOfSort[0]["No"];
drFormRoot[1] = "0";
drFormRoot[2] = rowsOfSort[0]["Name"];
drFormRoot[3] = rowsOfSort[0]["Idx"];
drFormRoot[4] = rowsOfSort[0]["IsParent"];
drFormRoot[5] = rowsOfSort[0]["TType"];
dtForm.Rows.Add(drFormRoot); //增加顶级类别..
//把类别数据组装到form数据里.
foreach (DataRow dr in dtSort.Rows)
{
DataRow drForm = dtForm.NewRow();
drForm[0] = dr["No"];
drForm[1] = dr["ParentNo"];
drForm[2] = dr["Name"];
drForm[3] = dr["Idx"];
drForm[4] = dr["IsParent"];
drForm[5] = dr["TType"];
dtForm.Rows.Add(drForm); //类别.
}
foreach (DataRow row in ds.Tables[1].Rows)
{
dtForm.Rows.Add(row.ItemArray);
}
String str = BP.Tools.Json.ToJson(dtForm);
return str;
}
/// <summary>
/// 获取设计器 - 系统维护菜单数据
/// 系统维护管理员菜单 需要翻译
/// </summary>
/// <returns></returns>
public string Default_AdminMenu()
{
//查询全部.
AdminMenus groups = new AdminMenus();
groups.RetrieveAll();
return BP.Tools.Json.ToJson(groups.ToDataTable());
}
#region 执行父类的重写方法.
/// <summary>
/// 默认执行的方法
/// </summary>
/// <returns></returns>
protected override string DoDefaultMethod()
{
return "err@没有判断的标记:" + this.DoType;
}
#endregion 执行父类的重写方法.
}
}