Beispiel #1
0
 /// <summary>
 /// 新增流程
 /// </summary>
 /// <param name="conn"></param>
 /// <param name="command"></param>
 /// <param name="flow"></param>
 private void AdddFlowDefine(OracleConnection conn, OracleCommand command, V_FLOWDEFINITION flow)
 {
     try
     {
         FLOW_MODELFLOWRELATION_T relation = flow.ModelRelation;
         FLOW_FLOWDEFINE_T        define   = flow.FlowDefinition;
         string[] companyids   = relation.COMPANYID.TrimEnd('|').Split('|');                 //所有关联公司的ID
         string[] companynames = relation.COMPANYNAME.TrimEnd('|').Split('|');               //所有关联公司的名称
         for (int i = 0; i < companyids.Length; i++)                                         //循环公司新增
         {
             if (!string.IsNullOrEmpty(relation.DEPARTMENTID))                               //如果存在部门
             {
                 string[] departmentids   = relation.DEPARTMENTID.TrimEnd('|').Split('|');   //所有关联部门的ID
                 string[] departmentnames = relation.DEPARTMENTNAME.TrimEnd('|').Split('|'); //所有关联部门名称
                 for (int j = 0; j < departmentids.Length; j++)                              //循环部门新增
                 {
                     string flowCode = InsertHistory(conn, command, companyids[i], relation.MODELCODE, departmentids[j], flow);
                     if (string.IsNullOrWhiteSpace(flowCode))
                     {
                         flowCode = Guid.NewGuid().ToString().Replace("-", string.Empty);
                     }
                     relation.COMPANYID      = companyids[i];
                     relation.COMPANYNAME    = companynames[i];
                     relation.DEPARTMENTID   = departmentids[j];
                     relation.DEPARTMENTNAME = departmentnames[j];
                     relation.FLOWCODE       = flowCode;
                     define.FLOWCODE         = flowCode;
                     AddFlow(conn, command, define);
                     AddRelation(conn, command, relation);
                 }
             }
             else
             {
                 string flowCode = InsertHistory(conn, command, companyids[i], relation.MODELCODE, string.Empty, flow);
                 if (string.IsNullOrWhiteSpace(flowCode))
                 {
                     flowCode = Guid.NewGuid().ToString().Replace("-", string.Empty);
                 }
                 relation.COMPANYID   = companyids[i];
                 relation.COMPANYNAME = companynames[i];
                 relation.FLOWCODE    = flowCode;
                 define.FLOWCODE      = flowCode;
                 AddFlow(conn, command, define);
                 AddRelation(conn, command, relation);
             }
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message, ex);
     }
 }
Beispiel #2
0
        private void AllowCheckbox_Checked(object sender, RoutedEventArgs e)
        {
            CheckBox checkBox = sender as CheckBox;
            FLOW_FLOWDEFINE_T tmpFlowDefine = checkBox.DataContext as FLOW_FLOWDEFINE_T;


            if (FlowDefine != null && FlowDefine != tmpFlowDefine)
            {
                oldcheckBox.IsChecked = false;
                //System.Windows.FrameworkElement xx = DgView.Columns[0].GetCellContent(FlowDefine);
                //CheckBox cb2 = xx.FindName("AllowCheckbox") as CheckBox;
                //cb2.IsChecked = false;
            }

            oldcheckBox = checkBox;
            FlowDefine = tmpFlowDefine;

            //int i = 0;
            //foreach (object  obj in DgView.ItemsSource)
            //{
            //    i++;

            //    System.Windows.FrameworkElement xx = DgView.Columns[0].GetCellContent(obj);
            //    if (xx == null)
            //        return;
            //    CheckBox cb2 = xx.FindName("AllowCheckbox") as CheckBox;
            //   // CheckBox cb2 = DgView.Columns[0].GetCellContent(obj).FindName("AllowCheckbox") as CheckBox;

            //    if (checkBox != cb2)
            //    cb2.IsChecked = false;

            //    xx = null;
            //    cb2 = null;

            //}  
        }
Beispiel #3
0
        private void AllowCheckbox_Checked(object sender, RoutedEventArgs e)
        {
            CheckBox          checkBox      = sender as CheckBox;
            FLOW_FLOWDEFINE_T tmpFlowDefine = checkBox.DataContext as FLOW_FLOWDEFINE_T;


            if (FlowDefine != null && FlowDefine != tmpFlowDefine)
            {
                oldcheckBox.IsChecked = false;
                //System.Windows.FrameworkElement xx = DgView.Columns[0].GetCellContent(FlowDefine);
                //CheckBox cb2 = xx.FindName("AllowCheckbox") as CheckBox;
                //cb2.IsChecked = false;
            }

            oldcheckBox = checkBox;
            FlowDefine  = tmpFlowDefine;

            //int i = 0;
            //foreach (object  obj in DgView.ItemsSource)
            //{
            //    i++;

            //    System.Windows.FrameworkElement xx = DgView.Columns[0].GetCellContent(obj);
            //    if (xx == null)
            //        return;
            //    CheckBox cb2 = xx.FindName("AllowCheckbox") as CheckBox;
            //   // CheckBox cb2 = DgView.Columns[0].GetCellContent(obj).FindName("AllowCheckbox") as CheckBox;

            //    if (checkBox != cb2)
            //    cb2.IsChecked = false;

            //    xx = null;
            //    cb2 = null;

            //}
        }
Beispiel #4
0
 private void AllowCheckbox_Unchecked(object sender, RoutedEventArgs e)
 {
     FlowDefine = null;
 }
Beispiel #5
0
        /// <summary>
        /// 流程模型定义
        /// </summary>
        /// <param name="con"></param>
        /// <param name="CompanyID"></param>
        /// <param name="ModelCode"></param>
        /// <returns></returns>
        public static List<FLOW_FLOWDEFINE_T> GetFlowByModelName(OracleConnection con, string CompanyID, string ModelCode)
        {
            List<FLOW_FLOWDEFINE_T> listDefine = new List<FLOW_FLOWDEFINE_T>();
            OracleDataReader dr = null;
            try
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                #region
                string sqlFLOW_MODELFLOWRELATION_T = @"select * from FLOW_MODELFLOWRELATION_T where COMPANYID='" + CompanyID + "' and FLAG='1'";

                string sqlFLOW_FLOWDEFINE_T = @"select * from FLOW_FLOWDEFINE_T where MODELCODE='" + ModelCode + "'";
                string sql = @"select FLOW_FLOWDEFINE_T.* from ("
                    + sqlFLOW_MODELFLOWRELATION_T
                    + ") FLOW_MODELFLOWRELATION_T join ("
                    + sqlFLOW_FLOWDEFINE_T
                    + ") FLOW_FLOWDEFINE_T on FLOW_MODELFLOWRELATION_T.FLOWCODE=FLOW_FLOWDEFINE_T.FLOWCODE";


                //OracleCommand cmd = con.CreateCommand();
                //cmd.CommandText = sql;

                //dr = cmd.ExecuteReader();
                LogHelper.WriteLog("FLOW_FLOWDEFINE_TDAL->GetFlowByModelName SQL语句:" + sql);
                dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                while (dr.Read())
                {
                    #region FLOW_FLOWDEFINE_T
                    FLOW_FLOWDEFINE_T define = new FLOW_FLOWDEFINE_T();
                    define.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                    define.CREATEDATE = (DateTime)dr["CREATEDATE"];
                    define.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                    define.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                    define.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                    define.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                    define.DESCRIPTION = dr["DESCRIPTION"] == DBNull.Value ? null : dr["DESCRIPTION"].ToString();
                    define.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                    define.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                    define.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                    define.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                    define.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                    define.FLOWDEFINEID = dr["FLOWDEFINEID"] == DBNull.Value ? null : dr["FLOWDEFINEID"].ToString();
                    define.LAYOUT = dr["LAYOUT"] == DBNull.Value ? null : dr["LAYOUT"].ToString();
                    define.RULES = dr["RULES"] == DBNull.Value ? null : dr["RULES"].ToString();
                    define.XOML = dr["XOML"] == DBNull.Value ? null : dr["XOML"].ToString(); ;
                    listDefine.Add(define);
                    break;
                    #endregion

                }
                dr.Close();
                #endregion
                return listDefine;
            }

            catch (Exception ex)
            {
                #region
                if (dr != null && !dr.IsClosed)
                {
                    dr.Close();
                }
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }

                throw new Exception("GetFlowByModelName-->" + ex.Message);
                #endregion
            }

        }
Beispiel #6
0
        /// <summary>
        /// 流程模型定义
        /// </summary>
        /// <param name="con"></param>
        /// <param name="CompanyID"></param>
        /// <param name="ModelCode"></param>
        /// <returns></returns>
        public static List <FLOW_FLOWDEFINE_T> GetFlowByModelName(OracleConnection con, string CompanyID, string ModelCode)
        {
            List <FLOW_FLOWDEFINE_T> listDefine = new List <FLOW_FLOWDEFINE_T>();
            OracleDataReader         dr         = null;

            try
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }
                #region
                string sqlFLOW_MODELFLOWRELATION_T = @"select * from FLOW_MODELFLOWRELATION_T where COMPANYID='" + CompanyID + "' and FLAG='1'";

                string sqlFLOW_FLOWDEFINE_T = @"select * from FLOW_FLOWDEFINE_T where MODELCODE='" + ModelCode + "'";
                string sql = @"select FLOW_FLOWDEFINE_T.* from ("
                             + sqlFLOW_MODELFLOWRELATION_T
                             + ") FLOW_MODELFLOWRELATION_T join ("
                             + sqlFLOW_FLOWDEFINE_T
                             + ") FLOW_FLOWDEFINE_T on FLOW_MODELFLOWRELATION_T.FLOWCODE=FLOW_FLOWDEFINE_T.FLOWCODE";


                //OracleCommand cmd = con.CreateCommand();
                //cmd.CommandText = sql;

                //dr = cmd.ExecuteReader();
                LogHelper.WriteLog("FLOW_FLOWDEFINE_TDAL->GetFlowByModelName SQL语句:" + sql);
                dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                while (dr.Read())
                {
                    #region FLOW_FLOWDEFINE_T
                    FLOW_FLOWDEFINE_T define = new FLOW_FLOWDEFINE_T();
                    define.CREATECOMPANYID    = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                    define.CREATEDATE         = (DateTime)dr["CREATEDATE"];
                    define.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                    define.CREATEPOSTID       = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                    define.CREATEUSERID       = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                    define.CREATEUSERNAME     = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                    define.DESCRIPTION        = dr["DESCRIPTION"] == DBNull.Value ? null : dr["DESCRIPTION"].ToString();
                    define.EDITDATE           = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                    define.EDITUSERID         = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                    define.EDITUSERNAME       = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                    define.FLOWCODE           = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                    define.FLOWTYPE           = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                    define.FLOWDEFINEID       = dr["FLOWDEFINEID"] == DBNull.Value ? null : dr["FLOWDEFINEID"].ToString();
                    define.LAYOUT             = dr["LAYOUT"] == DBNull.Value ? null : dr["LAYOUT"].ToString();
                    define.RULES = dr["RULES"] == DBNull.Value ? null : dr["RULES"].ToString();
                    define.XOML  = dr["XOML"] == DBNull.Value ? null : dr["XOML"].ToString();;
                    listDefine.Add(define);
                    break;
                    #endregion
                }
                dr.Close();
                #endregion
                return(listDefine);
            }

            catch (Exception ex)
            {
                #region
                if (dr != null && !dr.IsClosed)
                {
                    dr.Close();
                }
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }

                throw new Exception("GetFlowByModelName-->" + ex.Message);
                #endregion
            }
        }
        /// <summary>
        /// 查询 [模块与流程定义关联]
        /// </summary>
        /// <param name="CompanyID">创建公司ID</param>
        /// <param name="DepartID">创建部门ID</param>
        /// <param name="ModelCode">模块代码</param>
        /// <param name="FlowType">0:审批流程,1:任务流程</param>
        /// <param name="OrgType">1:代表部门ID为空,否则部门ID不为空</param>
        /// <returns></returns>
        public static List<FLOW_MODELFLOWRELATION_T> GetFlowByModelName(OracleConnection con,string CompanyID, string DepartID, string ModelCode, string FlowType, string OrgType)
        {
                List<FLOW_MODELFLOWRELATION_T> listRelation = new List<FLOW_MODELFLOWRELATION_T>();
                OracleDataReader dr = null;
                string sql = "";    
            try
                {
                    if (con.State != ConnectionState.Open)
                    {
                        con.Open();
                    }

                     sql = @" select * from FLOW_MODELFLOWRELATION_T where COMPANYID='{0}' and FLOWTYPE='{1}' and FLAG='1'  and MODELCODE='{2}'";

                    if (OrgType != "1")
                    {
                        sql = sql + " and DEPARTMENTID is null";

                    }
                    else
                    {
                        sql = sql + " and DEPARTMENTID='{3}'";
                    }

                    sql = string.Format(sql, CompanyID, FlowType, ModelCode, DepartID);
                    #region
               


                    //OracleCommand cmd = con.CreateCommand();
                    //cmd.CommandText = sql;

                    //dr = cmd.ExecuteReader();
                    LogHelper.WriteLog("FLOW_MODELFLOWRELATION_TDAL->GetFlowByModelName SQL语句:" + sql);
                    dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                    while (dr.Read())
                    {
                        #region FLOW_MODELFLOWRELATION_T
                        FLOW_MODELFLOWRELATION_T relation = new FLOW_MODELFLOWRELATION_T();
                        relation.COMPANYID = dr["COMPANYID"] == DBNull.Value ? null : dr["COMPANYID"].ToString();
                        relation.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                        relation.CREATEDATE = (DateTime)dr["CREATEDATE"];
                        relation.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        relation.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        relation.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                        relation.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                        relation.DEPARTMENTID = dr["DEPARTMENTID"] == DBNull.Value ? null : dr["DEPARTMENTID"].ToString();
                        relation.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                        relation.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                        relation.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                        relation.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString();
                        relation.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                        relation.MODELFLOWRELATIONID = dr["MODELFLOWRELATIONID"] == DBNull.Value ? null : dr["MODELFLOWRELATIONID"].ToString();
                        relation.FLOW_FLOWDEFINE_T = new FLOW_FLOWDEFINE_T();
                        relation.FLOW_FLOWDEFINE_T.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                        listRelation.Add(relation);
                        break;
                        #endregion

                    }
                    dr.Close();
                    if (listRelation.Count > 0)
                    {
                         sql = @"select * from FLOW_FLOWDEFINE_T where FLOWCODE='" + listRelation[0].FLOW_FLOWDEFINE_T.FLOWCODE + "'";
                        //dr = cmd.ExecuteReader();

                        dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                        while (dr.Read())
                        {
                            #region FLOW_FLOWDEFINE_T
                            FLOW_FLOWDEFINE_T define = new FLOW_FLOWDEFINE_T();
                            define.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                            define.CREATEDATE = (DateTime)dr["CREATEDATE"];
                            define.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                            define.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                            define.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                            define.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                            define.DESCRIPTION = dr["DESCRIPTION"] == DBNull.Value ? null : dr["DESCRIPTION"].ToString();
                            define.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                            define.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                            define.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                            define.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                            define.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                            define.FLOWDEFINEID = dr["FLOWDEFINEID"] == DBNull.Value ? null : dr["FLOWDEFINEID"].ToString();
                            define.LAYOUT = dr["LAYOUT"] == DBNull.Value ? null : dr["LAYOUT"].ToString();
                            define.RULES = dr["RULES"] == DBNull.Value ? null : dr["RULES"].ToString();
                            define.XOML = dr["XOML"] == DBNull.Value ? null : dr["XOML"].ToString(); ;
                            listRelation[0].FLOW_FLOWDEFINE_T = define;
                            break;
                            #endregion

                        }
                        dr.Close();

                    }
                 
                    #endregion
                    return listRelation;


                }
                catch (Exception ex)
                {
                    if (dr != null && !dr.IsClosed)
                    {
                        dr.Close();
                    }
                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                    }                   
                    throw new Exception("GetFlowByModelName-->" + ex.Message);
                    
                }
        }
Beispiel #8
0
        /// <summary>
        /// 保存数据到数据库
        /// </summary>
        private void SaveDataToDataBase()
        {
            try
            {
                _activityObjects = this.ucFlowSetting.activityProperty.ActivityObjects;//新建时活动数据
                _lineObjects = this.ucFlowSetting.lineProperty.LineObjects;//新建时连线数据
                //刷新上次选中元素的属性数据
                RefreshFlowData();
                #region 判断完成整性
                foreach (var role in _activityObjects)
                {
                    if (role.IsCounterSign)
                    {
                        if (role.CounterSignRoleList==null || role.CounterSignRoleList.Count < 1)
                        {
                            ComfirmWindow.ConfirmationBox("提示信息", "【会签节点】的角色不能为空,请添加角色!", "确定");
                            return;
                        }
                    }
                    if ((role.IsSpecifyCompany == true && string.IsNullOrEmpty(role.OtherCompanyId))
                        || (role.IsSpecifyCompany == false && !string.IsNullOrEmpty(role.OtherCompanyId) ))
                    {
                        ComfirmWindow.ConfirmationBox("提示信息", "【" + role.Remark + "】指定了公司【" + role .OtherCompanyName+ "】,但没有钩选中,请重新钩选!", "确定");
                        return;
                    }
                    #region 会签角色判断是否有指定公司
                    if (role.CounterSignRoleList != null && role.CounterSignRoleList.Count > 0)
                    {
                        string warlName = "";
                        foreach (var roleSingn in role.CounterSignRoleList)
                        {
                            if ((roleSingn.IsOtherCompany == true && roleSingn.OtherCompanyId.Trim() == "") || (roleSingn.IsOtherCompany == false && roleSingn.OtherCompanyId.Trim() != ""))
                            {
                                warlName += "【" + roleSingn.StateName + "】指定了公司【" + roleSingn.OtherCompanyName + "】,但没有钩选中,请重新钩选!\r\n";
                            }
                        }
                        if (warlName.Trim() != "")
                        {
                            ComfirmWindow.ConfirmationBox("会签角色提示信息", warlName, "确定");
                            return;
                        }
                    }
            //                    IsOtherCompany	false	bool
            //OtherCompanyId	"1a1f745c-e0df-4d21-b000-8d80d91b1743"	string
            //OtherCompanyName	null	string
            //StateCode	"da662417-baf1-4dab-ba34-5ae648c2047b"	string
            //StateName	"副总经理"	string
            //TypeCode	"CREATEUSER"	string
            //TypeName	"单据所有者"	string

                    #endregion
                }
                if (ucFlowSetting.flowProperty.txtFlowName.Text.Trim() == "")
                {
                    ComfirmWindow.ConfirmationBox("提示信息", "流程名称不能为空!", "确定");
                    return;
                }
                if (ucFlowSetting.flowProperty.cbSystemCode.SelectedIndex < 1)
                {
                    //MessageBox.Show("关联设置-〉业务系统:不能为空。", "警告:", MessageBoxButton.OK);
                    ComfirmWindow.ConfirmationBox("提示信息", "所属系统:不能为空!", "确定");
                    return;
                }
                if (ucFlowSetting.flowProperty.cbModelCode.SelectedIndex < 1)
                {
                    ComfirmWindow.ConfirmationBox("提示信息", "所属模块:不能为空!", "确定");
                    return;
                }

                if (ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation == null)
                {
                    ComfirmWindow.ConfirmationBox("提示信息", "所属公司:不能为空!", "确定");
                    return;
                }
                if (ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation != null && string.IsNullOrEmpty(ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation.COMPANYID))
                {
                    //MessageBox.Show("关联设置-〉所属公司:不能为空。", "警告:", MessageBoxButton.OK);
                    ComfirmWindow.ConfirmationBox("提示信息", "所属公司:不能为空!", "确定");
                    return;
                }
                #endregion

                #region 系统与模块的选择
                FLOW_MODELDEFINE_T systemCode = ucFlowSetting.flowProperty.cbSystemCode.SelectedItem as FLOW_MODELDEFINE_T;

                FLOW_MODELDEFINE_T modelCode = ucFlowSetting.flowProperty.cbModelCode.SelectedItem as FLOW_MODELDEFINE_T;

                #endregion
                string strWFLayout = ToXmlString();
                string strXOML = GetXoml(_uniqueID);// ToXoml(_uniqueID);
                string strRules = ToRule(systemCode.SYSTEMCODE, modelCode.MODELCODE);
                string strLayout = GetLayout();// ToLayout();
                //工作流程定义
                #region 工作流程定义
                FLOW_FLOWDEFINE_T flowDefine = new FLOW_FLOWDEFINE_T();
                flowDefine.FLOWDEFINEID = Guid.NewGuid().ToString().Replace("-", ""); ;//暂时存在数据库,但没有用到
                flowDefine.FLOWCODE = _uniqueID;
                flowDefine.DESCRIPTION = ucFlowSetting.flowProperty.txtFlowName.Text;
                flowDefine.XOML = strXOML;
                flowDefine.RULES = strRules;
                flowDefine.LAYOUT = strLayout;
                flowDefine.WFLAYOUT = strWFLayout;
                flowDefine.FLOWTYPE = ucFlowSetting.flowProperty.cboFlowType.SelectedIndex.ToString();
                flowDefine.CREATEUSERID = Utility.CurrentUser.OWNERID;
                flowDefine.CREATEUSERNAME = Utility.CurrentUser.USERNAME;
                flowDefine.CREATECOMPANYID = Utility.CurrentUser.OWNERCOMPANYID;
                flowDefine.CREATEDEPARTMENTID = Utility.CurrentUser.OWNERDEPARTMENTID;
                flowDefine.CREATEPOSTID = Utility.CurrentUser.OWNERPOSTID;
                flowDefine.CREATEDATE = newtag == 0 ? DateTime.Now : ucFlowSetting.flowProperty.CurrentFlowView.FlowDefinition.CREATEDATE;
                flowDefine.EDITUSERID = Utility.CurrentUser.UPDATEUSER;
                flowDefine.EDITUSERNAME = Utility.CurrentUser.USERNAME;
                flowDefine.EDITDATE = DateTime.Now;
                flowDefine.SYSTEMCODE = systemCode.SYSTEMCODE;
                flowDefine.BUSINESSOBJECT = modelCode.MODELCODE;
                #endregion
                //模块定义
                #region 模块定义
                FLOW_MODELFLOWRELATION_T flowRealtion = new FLOW_MODELFLOWRELATION_T();
                flowRealtion.MODELFLOWRELATIONID = newtag == 0 ? Guid.NewGuid().ToString().Replace("-", "") : ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation.MODELFLOWRELATIONID;
                flowRealtion.COMPANYID = ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation.COMPANYID;//公司ID
                flowRealtion.DEPARTMENTID = ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation.DEPARTMENTID; //部门Id
                flowRealtion.COMPANYNAME = ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation.COMPANYNAME;//公司名称
                flowRealtion.DEPARTMENTNAME = ucFlowSetting.flowProperty.CurrentFlowView.ModelRelation.DEPARTMENTNAME;//部门名称
                flowRealtion.SYSTEMCODE = systemCode.SYSTEMCODE; //系统代码
                flowRealtion.MODELCODE = modelCode.MODELCODE;
                flowRealtion.FLOWCODE = _uniqueID;
                flowRealtion.FLAG = "1";
                flowRealtion.FLOWTYPE = ucFlowSetting.flowProperty.cboFlowType.SelectedIndex.ToString();
                flowRealtion.CREATEUSERID = Utility.CurrentUser.OWNERID;
                flowRealtion.CREATEUSERNAME = Utility.CurrentUser.USERNAME;
                flowRealtion.CREATECOMPANYID = Utility.CurrentUser.OWNERCOMPANYID;
                flowRealtion.CREATEDEPARTMENTID = Utility.CurrentUser.OWNERDEPARTMENTID;
                flowRealtion.CREATEPOSTID = Utility.CurrentUser.OWNERPOSTID;
                flowRealtion.CREATEDATE = DateTime.Now;
                flowRealtion.EDITUSERID = Utility.CurrentUser.UPDATEUSER;
                flowRealtion.EDITUSERNAME = Utility.CurrentUser.USERNAME;
                flowRealtion.EDITDATE = DateTime.Now;
                #endregion
                _currentFlow = new V_FLOWDEFINITION()
                {
                    FlowDefinition = flowDefine,
                    ModelRelation = flowRealtion

                };
                ucFlowSetting.flowProperty.CurrentFlowView = _currentFlow;
                pBar.Start();
                clientFlow.AddFlowDefineAsync(_currentFlow);
            }
            catch (Exception e)
            {
                try{
                    ComfirmWindow.ConfirmationBox("提示信息", "出错信息如下:\r\n" + e.ToString(), "确定");
                }catch(Exception ex)
                {
                    MessageBox.Show("保存流程出错,出错信息如下:\r\n" + e.ToString());
                }
            }
        }
        /// <summary>
        /// 查询 [模块与流程定义关联]
        /// </summary>
        /// <param name="CompanyID">创建公司ID</param>
        /// <param name="DepartID">创建部门ID</param>
        /// <param name="ModelCode">模块代码</param>
        /// <param name="FlowType">0:审批流程,1:任务流程</param>
        /// <param name="OrgType">1:代表部门ID为空,否则部门ID不为空</param>
        /// <returns></returns>
        public static List <FLOW_MODELFLOWRELATION_T> GetFlowByModelName(OracleConnection con, string CompanyID, string DepartID, string ModelCode, string FlowType, string OrgType)
        {
            List <FLOW_MODELFLOWRELATION_T> listRelation = new List <FLOW_MODELFLOWRELATION_T>();
            OracleDataReader dr  = null;
            string           sql = "";

            try
            {
                if (con.State != ConnectionState.Open)
                {
                    con.Open();
                }

                sql = @" select * from FLOW_MODELFLOWRELATION_T where COMPANYID='{0}' and FLOWTYPE='{1}' and FLAG='1'  and MODELCODE='{2}'";

                if (OrgType != "1")
                {
                    sql = sql + " and DEPARTMENTID is null";
                }
                else
                {
                    sql = sql + " and DEPARTMENTID='{3}'";
                }

                sql = string.Format(sql, CompanyID, FlowType, ModelCode, DepartID);
                #region



                //OracleCommand cmd = con.CreateCommand();
                //cmd.CommandText = sql;

                //dr = cmd.ExecuteReader();
                LogHelper.WriteLog("FLOW_MODELFLOWRELATION_TDAL->GetFlowByModelName SQL语句:" + sql);
                dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                while (dr.Read())
                {
                    #region FLOW_MODELFLOWRELATION_T
                    FLOW_MODELFLOWRELATION_T relation = new FLOW_MODELFLOWRELATION_T();
                    relation.COMPANYID          = dr["COMPANYID"] == DBNull.Value ? null : dr["COMPANYID"].ToString();
                    relation.CREATECOMPANYID    = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                    relation.CREATEDATE         = (DateTime)dr["CREATEDATE"];
                    relation.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                    relation.CREATEPOSTID       = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                    relation.CREATEUSERID       = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                    relation.CREATEUSERNAME     = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                    relation.DEPARTMENTID       = dr["DEPARTMENTID"] == DBNull.Value ? null : dr["DEPARTMENTID"].ToString();
                    relation.EDITDATE           = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                    relation.EDITUSERID         = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                    relation.EDITUSERNAME       = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                    relation.FLAG                       = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString();
                    relation.FLOWTYPE                   = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                    relation.MODELFLOWRELATIONID        = dr["MODELFLOWRELATIONID"] == DBNull.Value ? null : dr["MODELFLOWRELATIONID"].ToString();
                    relation.FLOW_FLOWDEFINE_T          = new FLOW_FLOWDEFINE_T();
                    relation.FLOW_FLOWDEFINE_T.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                    listRelation.Add(relation);
                    break;
                    #endregion
                }
                dr.Close();
                if (listRelation.Count > 0)
                {
                    sql = @"select * from FLOW_FLOWDEFINE_T where FLOWCODE='" + listRelation[0].FLOW_FLOWDEFINE_T.FLOWCODE + "'";
                    //dr = cmd.ExecuteReader();

                    dr = MsOracle.ExecuteReaderByTransaction(con, sql, null);
                    while (dr.Read())
                    {
                        #region FLOW_FLOWDEFINE_T
                        FLOW_FLOWDEFINE_T define = new FLOW_FLOWDEFINE_T();
                        define.CREATECOMPANYID    = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString();
                        define.CREATEDATE         = (DateTime)dr["CREATEDATE"];
                        define.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        define.CREATEPOSTID       = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString();
                        define.CREATEUSERID       = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString();
                        define.CREATEUSERNAME     = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString();
                        define.DESCRIPTION        = dr["DESCRIPTION"] == DBNull.Value ? null : dr["DESCRIPTION"].ToString();
                        define.EDITDATE           = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"];
                        define.EDITUSERID         = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString();
                        define.EDITUSERNAME       = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString();
                        define.FLOWCODE           = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString();
                        define.FLOWTYPE           = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString();
                        define.FLOWDEFINEID       = dr["FLOWDEFINEID"] == DBNull.Value ? null : dr["FLOWDEFINEID"].ToString();
                        define.LAYOUT             = dr["LAYOUT"] == DBNull.Value ? null : dr["LAYOUT"].ToString();
                        define.RULES = dr["RULES"] == DBNull.Value ? null : dr["RULES"].ToString();
                        define.XOML  = dr["XOML"] == DBNull.Value ? null : dr["XOML"].ToString();;
                        listRelation[0].FLOW_FLOWDEFINE_T = define;
                        break;
                        #endregion
                    }
                    dr.Close();
                }

                #endregion
                return(listRelation);
            }
            catch (Exception ex)
            {
                if (dr != null && !dr.IsClosed)
                {
                    dr.Close();
                }
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                throw new Exception("GetFlowByModelName-->" + ex.Message);
            }
        }
Beispiel #10
0
 /// <summary>
 /// 新增流程定义
 /// </summary>
 /// <param name="conn">链接</param>
 /// <param name="command">数据库命令</param>
 /// <param name="define">流程定义</param>
 /// <returns>bool</returns>
 private bool AddFlow(OracleConnection conn, OracleCommand command, FLOW_FLOWDEFINE_T define)
 {
     try
     {
         string            insSql   = @"INSERT INTO FLOW_FLOWDEFINE_T (FLOWDEFINEID,FLOWCODE,DESCRIPTION,XOML,RULES,LAYOUT,FLOWTYPE,
                     CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID,CREATEDATE,EDITUSERID,EDITUSERNAME,
                     EDITDATE,SYSTEMCODE,BUSINESSOBJECT,WFLAYOUT) VALUES (:FLOWDEFINEID,:FLOWCODE,:DESCRIPTION,:XOML,:RULES,:LAYOUT,
                     :FLOWTYPE,:CREATEUSERID,:CREATEUSERNAME,:CREATECOMPANYID,:CREATEDEPARTMENTID,:CREATEPOSTID,:CREATEDATE,:EDITUSERID,:EDITUSERNAME,
                     :EDITDATE,:SYSTEMCODE,:BUSINESSOBJECT,:WFLAYOUT)";
         OracleParameter[] pageparm =
         {
             #region  参数
             new OracleParameter(":FLOWDEFINEID",       OracleType.NVarChar,  100),
             new OracleParameter(":FLOWCODE",           OracleType.NVarChar,  100),
             new OracleParameter(":DESCRIPTION",        OracleType.NVarChar,  100),
             new OracleParameter(":XOML",               OracleType.Clob),
             new OracleParameter(":RULES",              OracleType.Clob),
             new OracleParameter(":LAYOUT",             OracleType.Clob),
             new OracleParameter(":FLOWTYPE",           OracleType.NVarChar,    2),
             new OracleParameter(":CREATEUSERID",       OracleType.NVarChar,  100),
             new OracleParameter(":CREATEUSERNAME",     OracleType.NVarChar,  100),
             new OracleParameter(":CREATECOMPANYID",    OracleType.NVarChar,  100),
             new OracleParameter(":CREATEDEPARTMENTID", OracleType.NVarChar,  100),
             new OracleParameter(":CREATEPOSTID",       OracleType.NVarChar,  100),
             new OracleParameter(":CREATEDATE",         OracleType.DateTime),
             new OracleParameter(":EDITUSERID",         OracleType.NVarChar,  100),
             new OracleParameter(":EDITUSERNAME",       OracleType.NVarChar,  100),
             new OracleParameter(":EDITDATE",           OracleType.DateTime),
             new OracleParameter(":SYSTEMCODE",         OracleType.NVarChar,  100),
             new OracleParameter(":BUSINESSOBJECT",     OracleType.NVarChar,  100),
             new OracleParameter(":WFLAYOUT",           OracleType.Clob)
             #endregion
         };
         pageparm[0].Value  = GetValue(Guid.NewGuid().ToString().Replace("-", string.Empty)); //流程定义ID
         pageparm[1].Value  = GetValue(define.FLOWCODE);                                      //流程代码
         pageparm[2].Value  = GetValue(define.DESCRIPTION);;                                  //名称描述
         pageparm[3].Value  = GetValue(define.XOML);                                          //模型文件
         pageparm[4].Value  = GetValue(define.RULES);                                         //模型规则
         pageparm[5].Value  = GetValue(define.LAYOUT);                                        //模型布局
         pageparm[6].Value  = GetValue(define.FLOWTYPE);                                      //流程类型 -- 0:审批流程, 1:任务流程
         pageparm[7].Value  = GetValue(define.CREATEUSERID);                                  //操作人员ID
         pageparm[8].Value  = GetValue(define.CREATEUSERNAME);                                //操作人员名
         pageparm[9].Value  = GetValue(define.CREATECOMPANYID);                               //创建公司ID
         pageparm[10].Value = GetValue(define.CREATEDEPARTMENTID);                            //创建部门ID
         pageparm[11].Value = GetValue(define.CREATEPOSTID);                                  //创建岗位ID
         pageparm[12].Value = GetValue(define.CREATEDATE);                                    //创建时间
         pageparm[13].Value = GetValue(define.EDITUSERID);                                    //修改人ID
         pageparm[14].Value = GetValue(define.EDITUSERNAME);                                  //修改人用户名
         pageparm[15].Value = GetValue(define.EDITDATE);                                      //修改时间
         pageparm[16].Value = GetValue(define.SYSTEMCODE);                                    //业务系统:OA,HR,TM等
         pageparm[17].Value = GetValue(define.BUSINESSOBJECT);                                //业务对象:各种申请报销单
         pageparm[18].Value = GetValue(define.WFLAYOUT);                                      //流程定义文件,把旧的ID换成新的ID
         int n = MicrosoftOracle.ExecuteSQL(conn, command, insSql, pageparm);
         if (n > 0)
         {
             return(true);
         }
         return(false);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message, ex);
     }
 }
Beispiel #11
0
 private void AllowCheckbox_Unchecked(object sender, RoutedEventArgs e)
 {
     FlowDefine = null;
 }