//获取任务列表 private void getTaskLst(string strUserID) { string strSortname = Request.Params["sortname"]; string strSortorder = Request.Params["sortorder"]; //当前页面 int intPageIndex = Convert.ToInt32(Request.Params["page"]); //每页记录数 int intPageSize = Convert.ToInt32(Request.Params["pagesize"]); string strWF_SERVICE_NAME = (Request.Params["SrhWF_SERVICE_NAME"] != null) ? Request.Params["SrhWF_SERVICE_NAME"] : ""; string strSRC_USER = (Request.Params["SrhSRC_USER"] != null) ? Request.Params["SrhSRC_USER"] : ""; string strINST_TASK_STARTTIME_from = (Request.Params["SrhINST_TASK_STARTTIME_from"] != null) ? Request.Params["SrhINST_TASK_STARTTIME_from"] : ""; string strINST_TASK_STARTTIME_to = (Request.Params["SrhINST_TASK_STARTTIME_to"] != null) ? Request.Params["SrhINST_TASK_STARTTIME_to"] : ""; TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); string strState = ""; if (Request["isQueding"] == null || Request["isQueding"].ToString().Trim().Length == 0 || Request["isQueding"].ToString().ToLower().Trim() == "undefined") { strState = "XX"; } else { strState = TWfCommDict.StepState.StateConfirm; } DataTable dt = logic.SelectByTableForUserTaskListEx(strUserID, strState, strWF_SERVICE_NAME, strSRC_USER, strINST_TASK_STARTTIME_from, strINST_TASK_STARTTIME_to, intPageIndex, intPageSize); int intTotalCount = logic.GetSelectResultCountForUserTaskListEx(strUserID, strState, strWF_SERVICE_NAME, strSRC_USER, strINST_TASK_STARTTIME_from, strINST_TASK_STARTTIME_to); string strJson = CreateToJson(dt, intTotalCount); Response.Write(strJson); Response.End(); }
protected void Page_Load(object sender, EventArgs e) { ID.Value = Request.QueryString[TWfSettingTaskVo.ID_FIELD]; if (!string.IsNullOrEmpty(ID.Value)) { TWfSettingTaskVo dealtStep = new TWfSettingTaskVo(); TWfInstTaskDetailVo realStep = new TWfInstTaskDetailLogic().Details(ID.Value); string strFirstStepUrl = ""; bool bIsHaveRight = IsHaveRightToDealTheStep(this.LogInfo.UserInfo.ID, ID.Value, ref dealtStep, ref strFirstStepUrl); if (bIsHaveRight) { //以下是处理转向的问题 //增加对参数的自适应功能 (strFirstStepUrl.IndexOf("?") > -1 ? "&" : "?") string strStatment = string.Format((strFirstStepUrl.IndexOf("?") > -1 ? "&" : "?") + "{0}={1}&{2}={3}&IS_WF_DEAL=1&{4}={5}&{6}={7}&{8}={9}", TWfSettingTaskVo.WF_ID_FIELD, dealtStep.WF_ID, TWfSettingTaskVo.WF_TASK_ID_FIELD, dealtStep.WF_TASK_ID, TWfInstTaskOpinionsVo.WF_INST_TASK_ID_FIELD, realStep.ID, TWfInstTaskDetailVo.WF_INST_ID_FIELD, realStep.WF_INST_ID, TWfSettingTaskVo.TASK_ORDER_FIELD, dealtStep.TASK_ORDER); //环节序号(刘静楠,2013/7/17) Response.Redirect(strFirstStepUrl + strStatment); } else { //Alert("您不具备操作环节:" + ID.Value + "的权限,请咨询管理员"); //让其转向到另一个页面 //Update By SSZ LigerUI 信息提示方法,并关闭当前窗口 2013-2-4 LigerDialogPageCloseAlert("<b>您不具备操作环节:" + ID.Value + "的权限<br />或者配置中已无此环节信息,请咨询管理员</b>", DialogMold.waitting.ToString(), "3300"); //让其转向到另一个页面 } } }
public void InitData(string strInstStepID) { string strDataModel = "[{0}] 由 [{1}] {2}"; if (null == strInstStepID || strInstStepID.Trim() == "") { return; } TWfInstTaskDetailVo titdv = new TWfInstTaskDetailLogic().Details(strInstStepID); TWfInstControlVo tcv = new TWfInstControlLogic().Details(titdv.WF_INST_ID); TWfSettingTaskVo ttv = new TWfSettingTaskLogic().Details(new TWfSettingTaskVo() { WF_ID = titdv.WF_ID, WF_TASK_ID = titdv.WF_TASK_ID }); TWfInstTaskDetailVo titdv2 = new TWfInstTaskDetailLogic().Details(new TWfInstTaskDetailVo() { WF_TASK_ID = tcv.WF_TASK_ID }); TWfInstTaskDetailVo titdvPre = new TWfInstTaskDetailLogic().Details(titdv.PRE_INST_TASK_ID); Label1.Text = tcv.WF_SERVICE_NAME; Label2.Text = tcv.WF_STARTTIME; Label3.Text = GetWFStateName(tcv.WF_STATE); Label5.Text = (titdv2.ID == "" ? "该流程已处理完毕" : titdv2.INST_TASK_CAPTION); Label6.Text = string.Format(strDataModel, titdv.INST_TASK_STARTTIME, GetUserNameFromID(titdv.SRC_USER, true), "创建任务"); Label7.Text = string.Format(strDataModel, titdv.CFM_TIME, GetUserNameFromID(titdv.CFM_USER, true), "认领任务"); Label8.Text = string.Format(strDataModel, titdv.INST_TASK_ENDTIME, GetUserNameFromID(titdv.REAL_USER, true), "完成任务"); Label9.Text = (titdvPre.ID == ""?"无上一环节":(titdvPre.INST_TASK_CAPTION + ":" + string.Format(strDataModel, titdvPre.INST_TASK_ENDTIME, GetUserNameFromID(titdvPre.REAL_USER, true), "完成"))); }
/// <summary> /// 看有没有权限启动相对应的流程 /// </summary> /// <param name="strUserID">用户编号</param> /// <param name="strWF_ID">流程编号</param> /// <returns>返回值</returns> private bool IsHaveRightToDealTheStep(string strUserID, string strID, ref TWfSettingTaskVo dealStep, ref string strUrl) { TWfInstTaskDetailVo step = new TWfInstTaskDetailLogic().Details(new TWfInstTaskDetailVo() { ID = strID }); if (string.IsNullOrEmpty(step.ID)) { return(false); } TWfSettingTaskVo task = new TWfSettingTaskLogic().Details(new TWfSettingTaskVo() { WF_ID = step.WF_ID, WF_TASK_ID = step.WF_TASK_ID, SORT_FIELD = TWfSettingTaskVo.TASK_ORDER_FIELD, SORT_TYPE = " asc " }); if (string.IsNullOrEmpty(task.ID)) { return(false); } //判断是否有相关启动权限 strUrl = new TWfSettingTaskFormLogic().Details(new TWfSettingTaskFormVo() { WF_ID = step.WF_ID, WF_TASK_ID = step.WF_TASK_ID }).UCM_ID; dealStep = task; return(true); #region 原具备环节权限的判定 //if (task.OPER_TYPE == "01" && task.OPER_VALUE.IndexOf(strUserID) > -1) //{ // strUrl = new TWfSettingTaskFormLogic().Details(new TWfSettingTaskFormVo() { WF_ID = step.WF_ID, WF_TASK_ID = step.WF_TASK_ID }).UCM_ID; // dealStep = task; // return true; //} //if (task.OPER_TYPE == "02") //{ // DataTable dtUserPost = new TSysUserPostLogic().SelectByTable(new TSysUserPostVo()); // foreach (DataRow dr in dtUserPost.Rows) // { // if (dr[TSysUserPostVo.USER_ID_FIELD].ToString() == strUserID) // { // if (task.OPER_VALUE.IndexOf(dr[TSysUserPostVo.POST_ID_FIELD].ToString()) > -1) // { // //目前只处理了页面处理方式的连接地址 // dealStep = task; // strUrl = new TWfSettingTaskFormLogic().Details(new TWfSettingTaskFormVo() { WF_ID = step.WF_ID, WF_TASK_ID = task.WF_TASK_ID }).UCM_ID; // if (!string.IsNullOrEmpty(strUrl)) // return true; // } // } // } //} //return false; #endregion }
//获取信息 private void getData() { string strUserID = base.LogInfo.UserInfo.ID; string strSortname = Request.Params["sortname"]; string strSortorder = Request.Params["sortorder"]; //当前页面 int intPageIndex = Convert.ToInt32(Request.Params["page"]); //每页记录数 int intPageSize = Convert.ToInt32(Request.Params["pagesize"]); if (strSortname == null || strSortname.Length < 0) { strSortname = "WF_STARTTIME"; } TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); TWfInstTaskDetailVo detail = new TWfInstTaskDetailVo(); detail.SORT_FIELD = strSortname; detail.SORT_TYPE = strSortorder; DataTable dt = logic.SelectByTableForUserDealing_OA("2A", intPageIndex, intPageSize); int intTotalCount = logic.GetSelectResultCountForUserDealing_OA("2A"); string strJson = CreateToJson(dt, intTotalCount); Response.Write(strJson); Response.End(); }
/// <summary> /// 销毁指定流程,并且置所有的环节为已处理状态 /// 修改目的:强行结束流程 /// 修改时间:2013-5-16 /// 修改人:邵世卓 /// </summary> /// <param name="strID">TWfInstControlVo.ID</param> /// <returns></returns> public bool WFOperateForKillBySSZ(string strID) { new TWfInstControlLogic().Edit(new TWfInstControlVo() { ID = strID, WF_STATE = TWfCommDict.WfState.StateFinish, WF_SUSPEND_STATE = "2", WF_SUSPEND_ENDTIME = this.GetDateTimeToStanString() }); //然后将目前环节的处理结果置为已处理,保证不被任务列表搜索到 List <TWfInstTaskDetailVo> taskInstList = new TWfInstTaskDetailLogic().SelectByObject(new TWfInstTaskDetailVo() { WF_INST_ID = strID }, 0, 0); //所有的置为已处理(包括未处理的) foreach (TWfInstTaskDetailVo temp in taskInstList) { new TWfInstTaskDetailLogic().Edit(new TWfInstTaskDetailVo() { ID = temp.ID, INST_TASK_ENDTIME = this.GetDateTimeToStanString(), INST_TASK_STATE = TWfCommDict.StepState.StateDown, INST_TASK_DEAL_STATE = TWfCommDict.StepDealState.ForKill }); } return(true); }
//发文退回 public void Get_FW_BackTaskList(string Task_Status) { TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); DataTable dt = logic.Get_FW_BackTaskList(base.LogInfo.UserInfo.ID, Task_Status); string strJson = CreateToJson(dt, 15); Response.Write(strJson); Response.End(); }
public void InitTitle() { TWfInstTaskDetailVo detail = new TWfInstTaskDetailLogic().Details(WF_INST_TASK_ID.Value); TWfInstControlVo control = new TWfInstControlLogic().Details(WF_INST_ID.Value); lblWFName.Text = control.WF_CAPTION; lblStepName.Text = detail.INST_TASK_CAPTION; lblServiceCode.Text = control.WF_SERVICE_CODE; lblCreateTime.Text = control.WF_STARTTIME; }
/// <summary> /// 初始化所有数据的入口 /// </summary> public void InitWFData() { string strID = hdID.Value; string strType = hdType.Value; //先获取流程,环节数据等内容 TWfInstControlVo control = new TWfInstControlLogic().Details(strID); List <TWfSettingTaskVo> taskList = new TWfSettingTaskLogic().SelectByObjectListForSetp(new TWfSettingTaskVo() { WF_ID = control.WF_ID }); List <TWfInstTaskDetailVo> InstTaskList = new TWfInstTaskDetailLogic().SelectByObject(new TWfInstTaskDetailVo() { WF_INST_ID = strID }, 0, 200); CreatAllData(control, taskList, InstTaskList); }
/// <summary> /// 初始化所有数据的入口 /// </summary> public void InitWFData() { string strID = hdID.Value; string strType = hdType.Value; //先获取流程,环节数据等内容 TWfInstControlVo control = new TWfInstControlLogic().Details(strID); List <TWfSettingTaskVo> taskList = new TWfSettingTaskLogic().SelectByObjectListForSetp(new TWfSettingTaskVo() { WF_ID = control.WF_ID }); List <TWfInstTaskDetailVo> InstTaskList = new TWfInstTaskDetailLogic().SelectByObject(new TWfInstTaskDetailVo() { WF_INST_ID = strID, SORT_FIELD = TWfInstTaskDetailVo.INST_TASK_STARTTIME_FIELD, SORT_TYPE = i3.ValueObject.ConstValues.SortType.ASC }, 0, 200); //CreatAllData(control, taskList, InstTaskList); CreatShowData(control, taskList, InstTaskList); }
public void InitListData(string strUserID) { TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); pager.RecordCount = logic.GetSelectResultCountForUserTaskList(strUserID, TWfCommDict.StepState.StateDown); DataTable dtTaskDetail2 = logic.SelectByTableForUserTaskList(strUserID, TWfCommDict.StepState.StateDown, pager.CurrentPageIndex, pager.PageSize); if (null == StepTable) { DataTable dtTask = new TWfSettingTaskLogic().SelectByTable(new TWfSettingTaskVo()); StepTable = dtTask; } if (null == WFTable) { DataTable dtWF = new TWfSettingFlowLogic().SelectByTable(new TWfSettingFlowVo()); WFTable = dtWF; } grdDownList.DataSource = dtTaskDetail2.DefaultView; grdDownList.DataBind(); }
//获取任务列表 private void getTaskLst(string strUserID, string strTaskState) { string strSortname = Request.Params["sortname"]; string strSortorder = Request.Params["sortorder"]; //当前页面 int intPageIndex = Convert.ToInt32(Request.Params["page"]); //每页记录数 int intPageSize = Convert.ToInt32(Request.Params["pagesize"]); string strWF_SERVICE_NAME = (Request.Params["SrhWF_SERVICE_NAME"] != null) ? Request.Params["SrhWF_SERVICE_NAME"] : ""; string strSRC_USER = (Request.Params["SrhSRC_USER"] != null) ? Request.Params["SrhSRC_USER"] : ""; string strINST_TASK_STARTTIME_from = (Request.Params["SrhINST_TASK_STARTTIME_from"] != null) ? Request.Params["SrhINST_TASK_STARTTIME_from"] : ""; string strINST_TASK_STARTTIME_to = (Request.Params["SrhINST_TASK_STARTTIME_to"] != null) ? Request.Params["SrhINST_TASK_STARTTIME_to"] : ""; TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); DataTable dt = logic.SelectByTableForUserTaskListEx(strUserID, strTaskState, strWF_SERVICE_NAME, strSRC_USER, strINST_TASK_STARTTIME_from, strINST_TASK_STARTTIME_to, intPageIndex, intPageSize); int intTotalCount = logic.GetSelectResultCountForUserTaskListEx(strUserID, strTaskState, strWF_SERVICE_NAME, strSRC_USER, strINST_TASK_STARTTIME_from, strINST_TASK_STARTTIME_to); string strJson = CreateToJson(dt, intTotalCount); Response.Write(strJson); Response.End(); }
/// <summary> /// 获取委托书流程信息 /// </summary> /// <param name="strBusinessID">业务ID</param> /// <returns></returns> protected string getFlowInfo(string strBusinessID) { string strWf_ID = "RPT";//默认为报告流程 //流程类别 if (!string.IsNullOrEmpty(Request.QueryString["contract_type"])) { switch (Request.QueryString["contract_type"]) { //自送样流程 case "04": strWf_ID = "SAMPLE_WT"; break; //验收流程 case "05": strWf_ID = "WF_A"; break; //常规委托书流程 default: strWf_ID = "WT_FLOW"; break; } } //构造实例明细对象 TWfInstTaskDetailVo objTaskDetail = new TWfInstTaskDetailVo(); objTaskDetail.WF_ID = strWf_ID; //获取业务流程所有环节信息 DataTable dt = new TWfInstTaskDetailLogic().GetWFDetailByBusinessInfo(objTaskDetail, "task_id", Request.QueryString["business_id"]); if (dt.Rows.Count > 0) { return(dt.Rows[0]["CONTROL_ID"].ToString() + "|" + GetStepHeight(strWf_ID)); } return(""); }
public void InitListData(string strUserID) { TWfInstTaskDetailVo detail = new TWfInstTaskDetailVo(); TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); pager.RecordCount = logic.GetSelectResultCountForUserDealing(strUserID, "2A"); DataTable dtControl = logic.SelectByTableForUserDealing(strUserID, "2A", pager.CurrentPageIndex, pager.PageSize); if (null == StepTable) { DataTable dtTask = new TWfSettingTaskLogic().SelectByTable(new TWfSettingTaskVo()); StepTable = dtTask; } if (null == WFTable) { DataTable dtWF = new TWfSettingFlowLogic().SelectByTable(new TWfSettingFlowVo()); WFTable = dtWF; } grdList.DataSource = dtControl.DefaultView; grdList.DataBind(); }
protected void Button1_Click(object sender, EventArgs e) { // TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); bool bIsSuccess = logic.CreateInstWFAndFirstStep("WF_TEST", "000000001", "000000001", "QJ_LIMS", "请假启动流程"); }
/// <summary> /// 流程实例返元的处理方法 /// </summary> /// <param name="strID">实例流程的编号</param> /// <returns></returns> protected bool WFOperateGoStart(string strID) { //具有返元权限的操作人员可以做 TWfInstTaskDetailLogic instTaskLogic = new TWfInstTaskDetailLogic(); List <TWfInstTaskDetailVo> taskInstList = instTaskLogic.SelectByObject(new TWfInstTaskDetailVo() { WF_INST_ID = strID }, 0, 100); //如果指定的流程无实际的节点,则返回 if (taskInstList.Count < 1) { return(false); } TWfInstTaskDetailVo taskInstFirst = taskInstList[0]; TWfInstTaskDetailVo taskInstLast = taskInstList[taskInstList.Count - 1]; List <TWfSettingTaskVo> taskSettingList = new TWfSettingTaskLogic().SelectByObjectListForSetp(new TWfSettingTaskVo() { WF_ID = taskInstFirst.WF_ID }); TWfInstControlVo wfInst = new TWfInstControlLogic().Details(taskInstFirst.WF_INST_ID); //如果配置信息没有任何节点,则返回 if (taskSettingList.Count < 1) { return(false); } TWfInstTaskDetailVo taskNew = new TWfInstTaskDetailVo(); taskNew.ID = this.GetGUID(); taskNew.INST_NOTE = taskSettingList[0].TASK_NOTE; taskNew.INST_TASK_CAPTION = taskSettingList[0].TASK_CAPTION; taskNew.INST_TASK_STARTTIME = this.GetDateTimeToStanString(); taskNew.INST_TASK_STATE = TWfCommDict.StepState.StateNormal; taskNew.OBJECT_USER = taskInstFirst.OBJECT_USER; //使用上环节的目标处理人 taskNew.PRE_INST_TASK_ID = taskInstLast.ID; //上一个环节的编号,将成为本环节的上环节编号 //返元的所有新节点的前一个节点肯定是空的,直接置空即可 //taskNew.PRE_TASK_ID = i3.ValueObject.ConstValues.SpecialCharacter.EmptyValuesFillChar; taskNew.WF_ID = taskSettingList[0].WF_ID; taskNew.WF_INST_ID = taskInstFirst.WF_INST_ID; taskNew.WF_SERIAL_NO = taskInstFirst.WF_SERIAL_NO; taskNew.WF_TASK_ID = taskSettingList[0].ID; //将原环节表的标志位更新为完成 taskInstLast.INST_TASK_ENDTIME = this.GetDateTimeToStanString(); taskInstLast.INST_TASK_STATE = TWfCommDict.StepState.StateDown; taskInstLast.INST_TASK_DEAL_STATE = TWfCommDict.StepDealState.ForToZero; taskInstLast.REAL_USER = (this.Page as PageBase).LogInfo.UserInfo.ID; //环节表更新完毕,接着更新控制表 //更新控制表信息 //退回时要把附件和评论信息放入数据库,业务数据也要全部退回 //写入流程产生的新数据 instTaskLogic.Create(taskNew); instTaskLogic.Edit(new TWfInstTaskDetailVo() { ID = taskInstLast.ID, INST_TASK_ENDTIME = taskInstLast.INST_TASK_ENDTIME, INST_TASK_STATE = taskInstLast.INST_TASK_STATE, INST_TASK_DEAL_STATE = taskInstLast.INST_TASK_DEAL_STATE, REAL_USER = taskInstLast.REAL_USER }); TWfInstControlLogic instWFLogic = new TWfInstControlLogic(); instWFLogic.Edit(new TWfInstControlVo() { ID = wfInst.ID, WF_INST_TASK_ID = taskNew.ID, WF_TASK_ID = taskNew.WF_TASK_ID }); //附件和评论都无效 //业务数据直接copy第一个节点时的数据即可 TWfInstTaskServiceLogic serviceLogic = new TWfInstTaskServiceLogic(); List <TWfInstTaskServiceVo> serviceList = new List <TWfInstTaskServiceVo>(); List <TWfInstTaskServiceVo> serviceOldList = new TWfInstTaskServiceLogic().SelectByObject(new TWfInstTaskServiceVo() { WF_INST_ID = taskInstFirst.WF_INST_ID, WF_INST_TASK_ID = taskInstFirst.ID }, 0, 100); if (null != serviceOldList) { foreach (TWfInstTaskServiceVo service in serviceOldList) { //增加ID,流程实例编号、环节实例编号等内容,业务代码,Key和Value由业务系统自己处理 TWfInstTaskServiceVo stemp = new TWfInstTaskServiceVo(); stemp.ID = this.GetGUID(); stemp.WF_INST_ID = wfInst.ID; stemp.WF_INST_TASK_ID = taskNew.ID; stemp.SERVICE_NAME = service.SERVICE_NAME; stemp.SERVICE_KEY_NAME = service.SERVICE_KEY_NAME; stemp.SERVICE_KEY_VALUE = service.SERVICE_KEY_VALUE; stemp.SERVICE_ROW_SIGN = service.SERVICE_ROW_SIGN; serviceList.Add(stemp); } } foreach (TWfInstTaskServiceVo serviceTemp in serviceList) { serviceLogic.Create(serviceTemp); } return(true); }
protected void btnCreateWF_Click(object sender, EventArgs e) { TWfInstTaskDetailLogic logic = new TWfInstTaskDetailLogic(); new TWfInstTaskDetailLogic().CreateInstWFAndFirstStep("WF_TEST", "000000001", "000000001", "QJ000000001", "测试工作流,请删除"); }
public void ShowMsg(string strInstStepID) { TWfInstTaskDetailVo detail = new TWfInstTaskDetailLogic().Details(strInstStepID); lblMsg.InnerHtml = "<h1 style='font-size:18px;'>处理结果</h1><br />流程实例编号:" + detail.ID + "|<br />流程编码:" + detail.WF_ID + "|<br /> 环节编号:" + detail.WF_TASK_ID + "| <br /> 起始时间:" + detail.INST_TASK_STARTTIME + "|<br /> 结束时间:" + detail.INST_TASK_ENDTIME + "|<br /> 目标处理人:" + detail.OBJECT_USER; }