using System;
using System.Collections.Generic;
using System.Data;
using System.Collections;
using System.Web;
using System.Web.Services;
using BP.DA;
namespace ccbpm
{
///
/// OverrideInterface 的摘要说明
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class PortalInterface : System.Web.Services.WebService
{
#region 发送消息接口. 需要与web.config中 ShortMessageWriteTo 配置才能起作用。
///
/// 发送短信接口(二次开发需要重写这个接口)
///
/// 消息主键,是对应的Sys_SMS的MyPK。
/// 发送人(内部帐号,可以为空.)
/// 发送给(内部帐号,可以为空.)
/// 手机号码
/// 短消息
/// 标题
/// 链接
/// 是否发送成功
[WebMethod(EnableSession = true)]
public bool SendToWebServices(string msgPK, string sender, string sendToEmpNo, string tel,
string msgInfo, string title,string openUrl)
{
return true;
}
[WebMethod(EnableSession = true)]
public bool SendWhen(string flowNo, int nodeID, Int64 workid, string userNo, string userName)
{
//BP.DA.Log.DefaultLogWriteLineInfo("接口调用成功: SendToWebServices " + tel + " msgInfo:" + msgInfo);
// if (BP.Sys.SystemConfig.IsEnableCCIM && sendToEmpNo != null)
// BP.WF.Glo.SendMessageToCCIM(sender, sendToEmpNo, msgInfo, BP.DA.DataType.CurrentDataTime);
return true;
}
[WebMethod(EnableSession = true)]
public bool FlowOverBefore(string flowNo, int nodeID, Int64 workid, string userNo, string userName)
{
//BP.DA.Log.DefaultLogWriteLineInfo("接口调用成功: SendToWebServices " + tel + " msgInfo:" + msgInfo);
// if (BP.Sys.SystemConfig.IsEnableCCIM && sendToEmpNo != null)
// BP.WF.Glo.SendMessageToCCIM(sender, sendToEmpNo, msgInfo, BP.DA.DataType.CurrentDataTime);
return true;
}
///
/// 发送丁丁的接口
///
/// 消息主键,是对应的Sys_SMS的MyPK。
/// 发送人(内部帐号,可以为空.)
/// 发送给(内部帐号,可以为空.)
/// 电话
/// 消息内容
/// 是否发送成功
[WebMethod(EnableSession = true)]
public bool SendToDingDing(string mypk, string sender, string sendToEmpNo, string tel, string msgInfo)
{
// BP.DA.Log.DefaultLogWriteLineInfo("接口调用成功: SendToWebServices MyPK" + mypk +" UserNo:"+userNo+ " Tel:" + tel + " msgInfo:" + msgInfo);
//if (BP.Sys.SystemConfig.IsEnableCCIM && sendToEmpNo != null)
// BP.WF.Glo.SendMessageToCCIM(sender, sendToEmpNo, msgInfo, BP.DA.DataType.CurrentDataTime);
return true;
}
///
/// 发送微信的接口
///
/// 消息主键,是对应的Sys_SMS的MyPK。
/// 发送人(内部帐号,可以为空.)
/// 发送给(内部帐号,可以为空.)
///
///
/// 是否发送成功
[WebMethod]
public bool SendToWeiXin(string mypk, string sender, string sendToEmpNo, string tel, string msgInfo)
{
// BP.DA.Log.DefaultLogWriteLineInfo("接口调用成功: SendToWeiXin MyPK" + mypk + " UserNo:" + userNo + " Tel:" + tel + " msgInfo:" + msgInfo);
if (BP.Sys.SystemConfig.IsEnableCCIM && sendToEmpNo != null)
BP.WF.Glo.SendMessageToCCIM(sender, sendToEmpNo, msgInfo, BP.DA.DataType.CurrentDataTime);
return true;
}
///
/// 发送邮件接口
///
/// 消息主键,是对应的Sys_SMS的MyPK。
/// 发送人(内部帐号,可以为空.)
/// 发送给(内部帐号,可以为空.)
/// 邮件地址
/// 标题
/// 内容
/// 接收人编号
/// 是否发送成功
[WebMethod]
public bool SendToEmail(string mypk, string sender, string sendToEmpNo, string email, string title, string maildoc)
{
// BP.DA.Log.DefaultLogWriteLineInfo("接口调用成功: SendToEmail MyPK" + mypk + " email:" + email + " title:" + title + " maildoc:" + maildoc);
if (BP.Sys.SystemConfig.IsEnableCCIM && sendToEmpNo != null)
BP.WF.Glo.SendMessageToCCIM(sender, sendToEmpNo, title + " \t\n " + maildoc, BP.DA.DataType.CurrentDataTime);
return true;
}
///
/// 发送到CCIM即时通讯
///
/// 主键
/// 邮件
/// 标题
/// 内容
/// 返回发送结果
[WebMethod]
public bool SendToCCIM(string mypk, string userNo, string msg, string sourceUserNo, string tag = null)
{
// BP.DA.Log.DefaultLogWriteLineInfo("接口调用成功: SendToEmail MyPK" + mypk + " userNo:" + userNo + " msg:" + msg);
if (BP.Sys.SystemConfig.IsEnableCCIM && userNo != null)
BP.WF.Glo.SendMessageToCCIM(BP.Web.WebUser.No, userNo, msg, BP.DA.DataType.CurrentDataTime);
//BP.CCIM.Glo.SendMsg(userNo, sourceUserNo, msg);
return true;
}
#endregion 发送消息接口.
#region 其他的接口.
///
/// 打印文件在处理.
///
///
[WebMethod]
public void Print(string billFilePath)
{
}
#endregion
#region 组织结构.
///
/// 用于单点登录的写入SID
///
/// 配置在web.config中的密码,用于两个系统的握手.
/// 用户ID , 对应Port_Emp的No列.
/// 用户SID , 对应Port_Emp的SID列.
///
[WebMethod]
public bool WriteUserSID(string miyue, string userNo, string sid)
{
#region 简单Demo
try
{
if (miyue != "xxweerwerew")
return false;
if (userNo.Contains(" ") == true)
return false;
if (BP.DA.DBAccess.IsView("Port_Emp", BP.Sys.SystemConfig.AppCenterDBType) == true)
return false;
string sql = "UPDATE Port_Emp SET SID='" + sid + "' WHERE No='" + userNo + "'";
BP.DA.DBAccess.RunSQL(sql);
return true;
}
catch (Exception ex)
{
return false;
}
#endregion 简单Demo
}
///
/// 检查用户名密码是否正确
///
/// 用户名
/// 密码
/// 正确返回1,不正确返回0,其他的情况抛出异常。
[WebMethod]
public int CheckUserNoPassWord(string userNo, string password)
{
#region 简单Demo
try
{
string sql = "SELECT Pass FROM Port_Emp WHERE No='" + userNo + "'";
string pass = BP.DA.DBAccess.RunSQLReturnVal(sql) as string;
if (pass == password)
return 1; //成功返回1.
return 0; //失败返回0.
}
catch (Exception ex)
{
throw new Exception("@校验出现错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单Demo
}
///
/// 获得部门信息
///
/// 返回No,Name,ParentNo至少三个列的部门信息
[WebMethod]
public DataTable GetDept(string deptNo)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT No,Name,ParentNo FROM Port_Dept WHERE No='" + deptNo + "'");
}
catch (Exception ex)
{
throw new Exception("@获得部门出现错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得部门信息
///
/// 返回No,Name,ParentNo至少三个列的部门信息
[WebMethod]
public DataTable GetDepts()
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT No,Name,ParentNo FROM Port_Dept ORDER BY ParentNo,No");
}
catch (Exception ex)
{
throw new Exception("@获得部门出现错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得部门信息
///
/// 返回No,Name,ParentNo至少三个列的部门信息
[WebMethod]
public DataTable GetDeptsByParentNo(string parentDeptNo)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT No,Name,ParentNo FROM Port_Dept WHERE ParentNo='" + parentDeptNo + "' ORDER BY ParentNo,No");
}
catch (Exception ex)
{
throw new Exception("@获得部门出现错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得岗位信息
///
/// 返回No,Name,FK_StationType 至少三个列的岗位信息
[WebMethod]
public DataTable GetStations()
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT No,Name,FK_StationType FROM Port_Station ORDER BY FK_StationType,No");
}
catch (Exception ex)
{
throw new Exception("@获得岗位出现错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得岗位信息
///
/// 返回No,Name,FK_StationType至少三个列的岗位信息
[WebMethod]
public DataTable GetStation(string stationNo)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT No,Name,FK_StationType FROM Port_Station WHERE No='" + stationNo + "'");
}
catch (Exception ex)
{
throw new Exception("@获得岗位出现错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得人员信息(一人多部门)
///
/// 返回No,Name,FK_Dept至少三个列的部门、人员、岗位信息
[WebMethod]
public DataTable GetEmps()
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT a.No,a.Name,a.FK_Dept,b.Name as FK_DeptText FROM Port_Emp a, Port_Dept b WHERE (a.FK_Dept=b.No) ");
}
catch (Exception ex)
{
throw new Exception("@获得人员信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得人员信息(一人多部门)
///
/// 返回No,Name,FK_Dept至少三个列的部门、人员、岗位信息
[WebMethod]
public DataTable GetEmpsByDeptNo(string deptNo)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT a.No,a.Name,a.FK_Dept,b.Name as FK_DeptText FROM Port_Emp a, Port_Dept b WHERE a.FK_Dept=b.No AND A.FK_Dept='" + deptNo + "' ");
}
catch (Exception ex)
{
throw new Exception("@获得人员信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得人员信息(一人多部门)
///
/// 返回No,Name,FK_Dept至少三个列的部门、人员、岗位信息
[WebMethod]
public DataTable GetEmp(string no)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT a.No,a.Name,a.FK_Dept,b.Name as FK_DeptText FROM Port_Emp a, Port_Dept b WHERE (a.No='" + no + "') AND (a.FK_Dept=b.No) ");
}
catch (Exception ex)
{
throw new Exception("@获得人员信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得部门人员信息(一人多部门)
///
/// 返回FK_Dept,FK_Emp至少三个列的部门、人员、岗位信息
[WebMethod]
public DataTable GetDeptEmp()
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT FK_Dept,FK_Emp FROM Port_DeptEmp");
}
catch (Exception ex)
{
throw new Exception("@获得部门人员信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得人员他的部门实体信息集合.
///
/// 返回No,Name,ParentNo部门信息
[WebMethod]
public DataTable GetEmpHisDepts(string empNo)
{
#region 简单 Demo
try
{
string sql = "SELECT No,Name,ParentNo FROM Port_Dept WHERE No IN(SELECT FK_Dept FROM Port_DeptEmp WHERE FK_Emp='" + empNo + "')";
return BP.DA.DBAccess.RunSQLReturnTable(sql);
}
catch (Exception ex)
{
throw new Exception("@获得人员他的部门实体信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得人员他的岗位实体信息集合.
///
/// 返回No,Name,FK_StationType岗位信息
[WebMethod]
public DataTable GetEmpHisStations(string empNo)
{
#region 简单 Demo
try
{
string sql = "SELECT No,Name,FK_StationType FROM Port_Station WHERE No IN(SELECT FK_Station FROM Port_DeptEmpStation WHERE FK_Emp='" + empNo + "')";
return BP.DA.DBAccess.RunSQLReturnTable(sql);
}
catch (Exception ex)
{
throw new Exception("@获得人员他的岗位实体信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 获得部门人员岗位对应信息
///
/// 返回FK_Dept,FK_Emp,FK_Station至少三个列的部门、人员、岗位信息
[WebMethod]
public DataTable GetDeptEmpStations()
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT FK_Dept,FK_Emp,FK_Station FROM Port_DeptEmpStation");
}
catch (Exception ex)
{
throw new Exception("@获得部门人员岗位对应信息:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
#endregion 组织结构.
#region 特殊的查询
///
/// 通过一组岗位编号获得他的人员集合
///
/// 用逗号隔开的岗位集合比如: '01','02'
/// 返回No,Name,FK_Dept三个列.
[WebMethod]
public DataTable GenerEmpsByStations(string stationNos)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT a.No,a.Name,a.FK_Dept FROM Port_Emp A, Port_DeptEmpStation B WHERE A.No=B.FK_Emp AND B.FK_Station IN (" + stationNos + ")");
}
catch (Exception ex)
{
throw new Exception("@根据岗位集合,获得人员集合错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 通过一组部门编号获得他的人员集合
///
/// 用逗号隔开的部门集合比如: '01','02'
/// 返回No,Name,FK_Dept三个列.
[WebMethod]
public DataTable GenerEmpsByDepts(string deptNos)
{
#region 简单 Demo
try
{
return BP.DA.DBAccess.RunSQLReturnTable("SELECT a.No,a.Name,a.FK_Dept FROM Port_Emp A, Port_DeptEmp B WHERE A.No=B.No AND B.FK_Dept IN (" + deptNos + ")");
}
catch (Exception ex)
{
throw new Exception("@根据部门集合,获得人员集合错误:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
///
/// 指定部门与一个岗位集合,获得他们的人员。
///
/// 部门编号
/// 岗位编号s
/// No,Name,FK_Dept三个列的人员信息
[WebMethod]
public DataTable GenerEmpsBySpecDeptAndStats(string deptNo, string stations)
{
#region 简单 Demo
try
{
string sql = "SELECT a.No,a.Name,a.FK_Dept FROM Port_Emp A, Port_DeptEmpStation B WHERE A.No=B.FK_Emp AND B.FK_Station IN (" + stations + ") AND A.FK_Dept='" + deptNo + "'";
return BP.DA.DBAccess.RunSQLReturnTable(sql);
}
catch (Exception ex)
{
throw new Exception("@ 指定部门与一个岗位集合,获得他们的人员:" + ex.Message); //连接错误,直接抛出异常.
}
#endregion 简单 Demo
}
#endregion
#region 事件接口.
///
/// 发送成功要执行的事件
///
/// 流程编号
/// 节点ID
/// 工作ID
/// 用户编号
/// 用户名称
/// 执行结果
[WebMethod]
public string SendSuccess(string flowNo, int nodeID, Int64 workid, string userNo, string userName)
{
return null;
}
#endregion 事件接口.
}
}