Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
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;
        }
Ejemplo n.º 3
0
        //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;
            }


        }
Ejemplo n.º 4
0
        /// <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;
        }