using System; using System.Collections.Generic; using System.Collections; using System.Web; using System.Data; using System.Web.Services; /// /// 此接口为程序员二次开发使用,在阅读代码前请注意如下事项. /// 1, CCFlow的对外的接口都是以静态方法来实现的. /// 2, 以 DB_ 开头的是需要返回结果集合的接口. /// 3, 以 Flow_ 是流程接口. /// 4, 以 Node_ 是节点接口. /// 5, 以 Port_ 是组织架构接口. /// 6, 以 DTS_ 是调度. data tranr system. /// 7, 以 UI_ 是流程的功能窗口 /// 8, 以 WorkOpt_ 用工作处理器相关的接口。 /// namespace ccbpm { /// /// 工业自动化流程也是外部调用api流程. /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] public class IndustrialAutomationWorkflowWSAPI : System.Web.Services.WebService { #region 流程引擎操作相关. /// /// 创建WorkID /// /// 流程编号 /// 用户编号 /// 创建的Int64的workid. [WebMethod] public Int64 Node_CreateBlankWork(string userNo, string sid, string flowNo) { //如果当前的用户登录信息与传递来的用户不一致,就让其调用登录接口,让其登录。 if (BP.Web.WebUser.No != userNo) BP.WF.Dev2Interface.Port_LoginBySID(sid); flowNo = BP.DA.DataType.ParseStringOnlyIntNumber(flowNo); //规避注入风险,added by liuxc //创建WorkID,并返回. return BP.WF.Dev2Interface.Node_CreateBlankWork(flowNo, null, null, userNo, null); } /// /// 执行发送 /// /// 用户编号 /// 安全校验码 /// 流程编号 /// 节点ID /// 工作ID /// FID /// 参数 Key Value 的参数. /// [WebMethod] public string Node_SendWork(string userNo, string sid, string flowNo, int nodeID, Int64 workid, int toNodeID, string toEmps, string paras) { //如果当前的用户登录信息与传递来的用户不一致,就让其调用登录接口,让其登录。 if (BP.Web.WebUser.No != userNo) BP.WF.Dev2Interface.Port_LoginBySID(sid); BP.DA.AtPara ap = new BP.DA.AtPara(paras); BP.WF.SendReturnObjs objs = BP.WF.Dev2Interface.Node_SendWork(flowNo, workid, ap.HisHT, null, toNodeID, toEmps); return objs.ToMsgOfSpecText(); //输出特殊的格式,让接受者解析. } #endregion 流程引擎操作相关. #region Port门户处理. /// /// 让用户登录 /// /// 用户编号 /// 密码 /// 不成功返回空,成功返回SID [WebMethod] public string Port_Login(string userNo, string pass) { BP.Port.Emp emp = new BP.Port.Emp(userNo); if (emp.CheckPass(pass) == false) return "err@登录失败"; BP.WF.Dev2Interface.Port_Login(userNo); return "登录成功"; } /// /// 退出 /// [WebMethod] public void Port_LoginOut() { BP.WF.Dev2Interface.Port_SigOut(); } #endregion Port门户处理. #region 主要的菜单列表. /// /// 获得待办 /// /// 用户编号 /// sid /// 待办列表JSON public string DB_Todolist(string userNo, string sid) { //如果当前的用户登录信息与传递来的用户不一致,就让其调用登录接口,让其登录。 if (BP.Web.WebUser.No != userNo) BP.WF.Dev2Interface.Port_LoginBySID(sid); DataTable dt = BP.WF.Dev2Interface.DB_GenerEmpWorksOfDataTable(userNo); return BP.Tools.Json.ToJson(dt); } #endregion } }