/// <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); } }
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; //} }
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; //} }
private void AllowCheckbox_Unchecked(object sender, RoutedEventArgs e) { FlowDefine = null; }
/// <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="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); } }
/// <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); } }
/// <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); } }
private void AllowCheckbox_Unchecked(object sender, RoutedEventArgs e) { FlowDefine = null; }