private void cbxSWorkFolwDataTable_SelectedIndexChanged(object sender, EventArgs e) { if (cbxSWorkFolwDataTable.SelectedIndex < 1) return; ListItem l = new ListItem("###", "请选择"); cbxSWorkTastDataTable.Items.Clear(); cbxSWorkTastDataTable.Items.Add(l); IList li = MainHelper.PlatformSqlMap.GetList("SelectWF_WorkTaskList", "where WorkFlowId ='" + ((ListItem)cbxSWorkFolwDataTable.SelectedItem).ID + "' and TaskTypeId!='2' order by TaskTypeId"); DataTable dt = new DataTable(); if (((ListItem)cbxSWorkFolwDataTable.SelectedItem).ID == "无") { li.Clear(); WF_WorkTask wt = new WF_WorkTask(); wt.WorkTaskId = "无"; wt.TaskCaption = "无"; li.Add(wt); } if (li.Count > 0) dt = ConvertHelper.ToDataTable(li); wfhash.Clear(); for (int i = 0; i < li.Count; i++) { if (((WF_WorkTask)li[i]).TaskTypeId == "6") GetTaskList(ref dt, ((WF_WorkTask)li[i]).WorkFlowId, ((WF_WorkTask)li[i]).WorkTaskId); } DataRow[] rows = dt.Select("TaskTypeId='6'"); foreach (DataRow row in rows) { dt.Rows.Remove(row); } WinFormFun.LoadComboBox(cbxSWorkTastDataTable, dt, "WorkTaskId", "TaskCaption"); cbxSWorkTastDataTable.SelectedIndex = 0; }
public static string GetSubWorkFlowTaskOperator(string WorkflowInsId, WF_WorkTask wt) { string retStatus = ""; if (wt.TaskTypeId == "6" || wt.TaskTypeId == "7") { while (wt.TaskTypeId == "6" || wt.TaskTypeId == "7") { if (wt.TaskTypeId == "6") { WF_WorkFlowInstance subwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", "where MainWorkflowInsId='" + WorkflowInsId + "'and MainWorktaskId='" + wt.WorkTaskId + "' "); if (subwf != null) { wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(subwf.NowTaskId); WorkflowInsId = subwf.WorkFlowInsId; if (wt.TaskTypeId != "6" && wt.TaskTypeId != "7") retStatus = wt.TaskCaption; else { return GetSubWorkFlowTaskOperator(WorkflowInsId, wt); } } else { return ""; } } else if (wt.TaskTypeId == "7") { IList<WF_WorkFlowInstance> subwfli = MainHelper.PlatformSqlMap.GetList<WF_WorkFlowInstance>("SelectWF_WorkFlowInstanceList", "where MainWorkflowInsId='" + WorkflowInsId + "'and MainWorktaskId='" + wt.WorkTaskId + "' "); foreach (WF_WorkFlowInstance wfi in subwfli) { wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(wfi.NowTaskId); WorkflowInsId = wfi.WorkFlowInsId; string str = GetSubWorkFlowTaskOperator(WorkflowInsId, wt); if (retStatus == "") { retStatus = str; } else { retStatus = retStatus + "|" + str; } } return retStatus; } } } else { IList<WF_WorkTaskInstanceView> wtili = MainHelper.PlatformSqlMap.GetList<WF_WorkTaskInstanceView>("SelectWF_WorkTaskInstanceViewList", "where WorkFlowInsId='" + WorkflowInsId + "'and WorkTaskId='" + wt.WorkTaskId + "' order by taskStartTime desc "); if (wtili.Count > 0) { retStatus = wtili[0].OperContent; } return retStatus; } return retStatus; }
//private void setParameter() //{ // sqlDataItem.ParameterList.Clear(); // sqlDataItem.AppendParameter("@WorkTaskId", this.TaskId); // sqlDataItem.AppendParameter("@TaskCaption", this.TaskName); // sqlDataItem.AppendParameter("@WorkFlowId", this.WorkFlowId); // sqlDataItem.AppendParameter("@TaskTypeId", this.TaskType,typeof(int)); // sqlDataItem.AppendParameter("@iXPosition", this.X,typeof(int)); // sqlDataItem.AppendParameter("@iYPosition", this.Y,typeof(int)); // sqlDataItem.AppendParameter("@OperRule", this.OperRule); // sqlDataItem.AppendParameter("@Description", this.Description); // sqlDataItem.AppendParameter("@TaskTypeAndOr", this.TaskTypeAndOr); // sqlDataItem.AppendParameter("@IsJumpSelf", this.IsJumpSelf,typeof(bool)); //} ///// <summary> ///// 增加一个任务节点的语句 ///// </summary> //private void setInsertSql() //{ // string tmpValueList = ""; // string tmpFieldName = ""; // sqlString = "insert into " + tableName + "("; // int tmpInt = this.fieldList.Length; // for (int i = 0; i < tmpInt - 1; i++) // { // tmpFieldName = fieldList[i].ToString(); // sqlString = sqlString + tmpFieldName + ","; // tmpValueList = tmpValueList + "@" + tmpFieldName + ","; // } // tmpFieldName = this.fieldList[tmpInt - 1].ToString(); // sqlString = sqlString + tmpFieldName; // tmpValueList = tmpValueList + "@" + tmpFieldName; // this.sqlString = sqlString + ")values(" + tmpValueList + ")"; // sqlDataItem.CommandText = sqlString; //} ///// <summary> ///// 修改当前任务节点的语句 ///// </summary> //private void setUpdateSql() //{ // string tmpFieldName = ""; // int tmpInt = this.fieldList.Length; // sqlString = "update " + tableName + " set "; // for (int i = 0; i < tmpInt - 1; i++) // { // tmpFieldName = this.fieldList[i].ToString(); // sqlString = sqlString + tmpFieldName + "=@" + tmpFieldName + ","; // } // tmpFieldName = fieldList[tmpInt - 1].ToString(); // sqlString = sqlString + tmpFieldName + "=@" + tmpFieldName; // sqlString = sqlString + " where " + keyField + "=@" + this.keyField; // sqlDataItem.CommandText = sqlString; //} /// <summary> ///增加任务节点 /// </summary> public void InsertTask() { if (TaskId.Trim().Length == 0 || TaskId == null) throw new Exception("InsertTask方法错误,TaskId 不能为空!"); try { //setInsertSql();//设定insert语句 //setParameter();//设定参数 //ClientDBAgent agent = new ClientDBAgent(); //agent.ExecuteNonQuery(sqlDataItem); WF_WorkTask wf = new WF_WorkTask(); wf.WorkTaskId = this.TaskId; wf.TaskCaption = this.TaskName; wf.WorkFlowId = this.WorkFlowId; wf.TaskTypeId = this.TaskType.ToString(); wf.iXPosition = this.X; wf.iYPosition = this.Y; wf.OperRule = this.OperRule; wf.Description = this.Description; wf.TaskTypeAndOr = this.TaskTypeAndOr; wf.IsJumpSelf = this.IsJumpSelf; MainHelper.PlatformSqlMap.Create<WF_WorkTask>(wf); } catch (Exception ex) { throw ex; } }
/// <summary> /// 获得流程当前的状态 /// </summary> /// <param name="WorkTaskInsId">流转前当前节点实例</param> /// <returns></returns> //public static string GetWorkFlowTaskCaption(string WorkTaskInsId) //{ // string sql = "where ( previoustaskid='" + WorkTaskInsId + "' or WorkTaskId in ( select NowTaskId from WF_WorkFlowInstance where MainWorktaskInsId='" + WorkTaskInsId + "' ) ) and operstatus='0' order by opertype"; // string strturn = ""; // IList<WF_WorkTaskInstanceView> li = MainHelper.PlatformSqlMap.GetList<WF_WorkTaskInstanceView>("SelectWF_WorkTaskInstanceViewList", sql); // if (li.Count > 0) // { // if (li.Count > 1) // { // WF_WorkFlowInstance wfi = null; // wfi = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkFlowInstance>(li[0].WorkFlowInsId); // foreach (WF_WorkTaskInstanceView wti in li) // { // wfi = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkFlowInstance>(wti.WorkFlowInsId); // //if (wfi == null) break; // if (wfi == null) continue; // if (wfi.NowTaskId == wti.WorkTaskId) // { // //return wti.TaskInsCaption; // if (strturn == "") // strturn = wti.TaskInsCaption; // else // { // strturn = strturn + "|" + wti.TaskInsCaption; // } // } // } // } // else // { // strturn = li[0].TaskInsCaption; // } // } // else // { // sql = "where previoustaskid='" + WorkTaskInsId + "' order by opertype"; // li = MainHelper.PlatformSqlMap.GetList<WF_WorkTaskInstanceView>("SelectWF_WorkTaskInstanceViewList", sql); // if (li.Count > 0) // { // //if (li[0].isSubWorkflow == false) // //{ // // return li[0].TaskInsCaption; // //} // //else // //{ // // WF_WorkFlowInstance mainwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", "where WorkflowInsId='" + li[0].MainWorkflowInsId + "'"); // // if (mainwf != null) // // { // // //WF_WorkTaskInstance wti = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTaskInstance>(mainwf.NowTaskId); // // WF_WorkTask wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(mainwf.NowTaskId); // // if (wt.TaskTypeId == "6") // // { // // WF_WorkFlowInstance subwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", "where MainWorkflowInsId='" + li[0].MainWorkflowInsId + "'and MainWorktaskId='" + mainwf.NowTaskId + "' "); // // wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(subwf.NowTaskId); // // } // // else // // if (wt.TaskTypeId == "2") // // { // // while (wt.TaskTypeId == "2" && mainwf!=null) // // { // // if (mainwf.MainWorkflowInsId != "") // // { // // mainwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", // // "where WorkflowInsId='" + mainwf.MainWorkflowInsId + "'"); // // wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(mainwf.NowTaskId); // // } // // else // // { // // break; // // } // // } // // } // // return wt.TaskCaption; // // } // //} // foreach (WF_WorkTaskInstanceView wti in li) // { // if (wti.isSubWorkflow == false) // { // if (strturn == "") // strturn = wti.TaskInsCaption; // else // { // strturn = strturn + "|" + wti.TaskInsCaption; // } // } // else // { // WF_WorkFlowInstance mainwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", "where WorkflowInsId='" + li[0].MainWorkflowInsId + "'"); // if (mainwf != null) // { // //WF_WorkTaskInstance wti = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTaskInstance>(mainwf.NowTaskId); // WF_WorkTask wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(mainwf.NowTaskId); // if (wt.TaskTypeId == "6") // { // WF_WorkFlowInstance subwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", "where MainWorkflowInsId='" + li[0].MainWorkflowInsId + "'and MainWorktaskId='" + mainwf.NowTaskId + "' "); // wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(subwf.NowTaskId); // } // else // if (wt.TaskTypeId == "2") // { // while (wt.TaskTypeId == "2" && mainwf != null) // { // if (mainwf.MainWorkflowInsId != "") // { // mainwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", // "where WorkflowInsId='" + mainwf.MainWorkflowInsId + "'"); // wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(mainwf.NowTaskId); // } // else // { // break; // } // } // } // //return wt.TaskCaption; // if (strturn == "") // strturn = wti.TaskInsCaption; // else // { // strturn = strturn + "|" + wti.TaskInsCaption; // } // } // } // } // } // return GetWorkFlowTaskCaption(WorkTaskInsId, strturn); // } //} public static string GetSubWorkFlowTaskCaption(string WorkflowInsId, WF_WorkTask wt) { string retStatus = ""; if (wt.TaskTypeId == "6" || wt.TaskTypeId == "7") { while (wt.TaskTypeId == "6" || wt.TaskTypeId == "7") { if (wt.TaskTypeId == "6") { WF_WorkFlowInstance subwf = (WF_WorkFlowInstance)MainHelper.PlatformSqlMap.GetObject("SelectWF_WorkFlowInstanceList", "where MainWorkflowInsId='" + WorkflowInsId + "'and MainWorktaskId='" + wt.WorkTaskId + "' "); if (subwf != null) { wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(subwf.NowTaskId); WorkflowInsId = subwf.WorkFlowInsId; if (wt.TaskTypeId != "6" && wt.TaskTypeId != "7") retStatus = wt.TaskCaption; else { return GetSubWorkFlowTaskCaption(WorkflowInsId, wt); } } else { return ""; } } else if (wt.TaskTypeId == "7") { IList<WF_WorkFlowInstance> subwfli = MainHelper.PlatformSqlMap.GetList<WF_WorkFlowInstance>("SelectWF_WorkFlowInstanceList", "where MainWorkflowInsId='" + WorkflowInsId + "'and MainWorktaskId='" + wt.WorkTaskId + "' "); foreach (WF_WorkFlowInstance wfi in subwfli) { wt = MainHelper.PlatformSqlMap.GetOneByKey<WF_WorkTask>(wfi.NowTaskId); WorkflowInsId = wfi.WorkFlowInsId; string str = GetSubWorkFlowTaskCaption(WorkflowInsId, wt); if (retStatus == "") { retStatus = str; } else { retStatus = retStatus + "|" + str; } } return retStatus; } } } else { if (wt.TaskCaption.IndexOf("结束节点") == -1) retStatus = wt.TaskCaption; else retStatus = "存档"; return retStatus; } return retStatus; }