/// <summary> /// 得到审核主表最新的一个实体 /// </summary> /// <param name="conn">OracleConnection</param> /// <param name="formid">formid</param> /// <returns></returns> public FLOW_FLOWRECORDMASTER_T GetFlowerMasterIDByFormid(OracleConnection conn, string formid) { try { FLOW_FLOWRECORDMASTER_T model = new FLOW_FLOWRECORDMASTER_T(); string selSql = "SELECT INSTANCEID,FORMID,EDITUSERID,EDITUSERNAME FROM FLOW_FLOWRECORDMASTER_T WHERE FORMID=:FORMID ORDER BY CREATEDATE DESC"; OracleParameter[] pageparm = { new OracleParameter(":FORMID",OracleType.NVarChar,100) }; pageparm[0].Value = formid; DataTable dt = OracleDataProvider.GetDataTable(conn, selSql, pageparm); if (dt.Rows.Count > 0) {//多次提交单据的时候,取最新的一条数据 model.INSTANCEID = dt.Rows[0]["INSTANCEID"].ToString();// model.FORMID = dt.Rows[0]["FORMID"].ToString();// model.EDITUSERID = dt.Rows[0]["EDITUSERID"].ToString();// model.EDITUSERNAME = dt.Rows[0]["EDITUSERNAME"].ToString();// } return model; } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// 新增:[流程审批实例表] /// </summary> /// <param name="con">//OracleConnection 连接对象</param> /// <param name="model">流程审批实例表</param> public static int Add(FLOW_FLOWRECORDMASTER_T model) { try { string insSql = "INSERT INTO FLOW_FLOWRECORDMASTER_T (FLOWRECORDMASTERID,INSTANCEID,FLOWSELECTTYPE,MODELCODE,FLOWCODE,FORMID,FLOWTYPE,CHECKSTATE,CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID,CREATEDATE,EDITUSERID,EDITUSERNAME,EDITDATE,ACTIVEROLE,BUSINESSOBJECT,KPITIMEXML) VALUES (@FLOWRECORDMASTERID,@INSTANCEID,@FLOWSELECTTYPE,@MODELCODE,@FLOWCODE,@FORMID,@FLOWTYPE,@CHECKSTATE,@CREATEUSERID,@CREATEUSERNAME,@CREATECOMPANYID,@CREATEDEPARTMENTID,@CREATEPOSTID,@CREATEDATE,@EDITUSERID,@EDITUSERNAME,@EDITDATE,@ACTIVEROLE,@BUSINESSOBJECT,@KPITIMEXML)"; Parameter[] pageparm = { new Parameter("@FLOWRECORDMASTERID"), new Parameter("@INSTANCEID"), new Parameter("@FLOWSELECTTYPE"), new Parameter("@MODELCODE"), new Parameter("@FLOWCODE"), new Parameter("@FORMID"), new Parameter("@FLOWTYPE"), new Parameter("@CHECKSTATE"), new Parameter("@CREATEUSERID"), new Parameter("@CREATEUSERNAME"), new Parameter("@CREATECOMPANYID"), new Parameter("@CREATEDEPARTMENTID"), new Parameter("@CREATEPOSTID"), new Parameter("@CREATEDATE"), new Parameter("@EDITUSERID"), new Parameter("@EDITUSERNAME"), new Parameter("@EDITDATE"), new Parameter("@ACTIVEROLE"), new Parameter("@BUSINESSOBJECT"), new Parameter("@KPITIMEXML") }; pageparm[0].ParameterValue = GetValue(model.FLOWRECORDMASTERID);// pageparm[1].ParameterValue = GetValue(model.INSTANCEID);// pageparm[2].ParameterValue = GetValue(model.FLOWSELECTTYPE);//0:固定流程,1:自选流程 pageparm[3].ParameterValue = GetValue(model.MODELCODE);// pageparm[4].ParameterValue = GetValue(model.FLOWCODE);// pageparm[5].ParameterValue = GetValue(model.FORMID);// pageparm[6].ParameterValue = GetValue(model.FLOWTYPE);//0:审批流程,1:任务流程 pageparm[7].ParameterValue = GetValue(model.CHECKSTATE);//1:审批中,2:审批通过,3审批不通过,5撤销(为与字典保持一致) pageparm[8].ParameterValue = GetValue(model.CREATEUSERID);// pageparm[9].ParameterValue = GetValue(model.CREATEUSERNAME);// pageparm[10].ParameterValue = GetValue(model.CREATECOMPANYID);// pageparm[11].ParameterValue = GetValue(model.CREATEDEPARTMENTID);// pageparm[12].ParameterValue = GetValue(model.CREATEPOSTID);// pageparm[13].ParameterValue = GetValue(model.CREATEDATE);// pageparm[14].ParameterValue = GetValue(model.EDITUSERID);// pageparm[15].ParameterValue = GetValue(model.EDITUSERNAME);// pageparm[16].ParameterValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");// pageparm[17].ParameterValue = GetValue(model.ACTIVEROLE);// pageparm[18].ParameterValue = GetValue(model.BUSINESSOBJECT);// pageparm[19].ParameterValue = GetValue(model.KPITIMEXML);// int n = dao.ExecuteNonQuery(insSql, pageparm); Tracer.Debug("FLOW_FLOWRECORDMASTER_TDAL->Add 新增:[流程审批实例表]成功:FLOWRECORDDETAILID=" + model.FLOWRECORDMASTERID + ";EDITUSERID=" + model.EDITUSERID + ";CHECKSTATE=" + model.CHECKSTATE + ";时间:" + DateTime.Now.ToString()); return n; } catch (Exception ex) { Tracer.Debug("FLOW_FLOWRECORDMASTER_TDAL->Add 新增:[流程审批实例表]失败:FLOWRECORDDETAILID=" + model.FLOWRECORDMASTERID + ";EDITUSERID=" + model.EDITUSERID + ";CHECKSTATE=" + model.CHECKSTATE + ";时间:" + DateTime.Now.ToString() + "\r\n异常信息:" + ex.Message); throw new Exception("FLOW_FLOWRECORDMASTER_TDAL->Add:" + ex.Message); } }
public static List<FLOW_FLOWRECORDMASTER_T> GetFlowRecordBySubmitUserID(string CheckState, string EditUserID) { List<FLOW_FLOWRECORDMASTER_T> listMaster = new List<FLOW_FLOWRECORDMASTER_T>(); List<string> listMasterID = new List<string>(); IDataReader dr = null; try { StringBuilder sbMaster = new StringBuilder(); sbMaster.Append(@"select FLOWRECORDMASTERID,INSTANCEID,MODELCODE,FLOWCODE, FORMID,CHECKSTATE,CREATEUSERID,CREATEUSERNAME,CREATECOMPANYID,CREATEDEPARTMENTID,CREATEPOSTID, CREATEDATE,EDITUSERID,EDITUSERNAME,EDITDATE,FLOWTYPE,FLOWSELECTTYPE from FLOW_FLOWRECORDMASTER_T where 1=1 "); if (!string.IsNullOrEmpty(EditUserID)) { sbMaster.Append(" and CREATEUSERID='" + EditUserID + "'"); } if (!string.IsNullOrEmpty(CheckState)) { sbMaster.Append(" and CHECKSTATE='" + CheckState + "'"); } #region ////OracleCommand cmd = con.CreateCommand(); ////cmd.CommandText = sbMaster.ToString(); //dr = cmd.ExecuteReader(); dr = dao.ExecuteReader(sbMaster.ToString()); while (dr.Read()) { #region master FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T(); //master.ACTIVEROLE = dr["ACTIVEROLE"] == DBNull.Value ? null : dr["ACTIVEROLE"].ToString(); //master.BUSINESSOBJECT = dr["BUSINESSOBJECT"] == DBNull.Value ? null : dr["BUSINESSOBJECT"].ToString(); master.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString(); master.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString(); master.CREATEDATE = (DateTime)dr["CREATEDATE"]; master.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString(); master.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString(); master.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString(); master.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString(); master.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"]; master.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString(); master.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString(); master.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString(); master.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString(); master.FLOWSELECTTYPE = dr["FLOWSELECTTYPE"] == DBNull.Value ? null : dr["FLOWSELECTTYPE"].ToString(); master.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString(); master.FORMID = dr["FORMID"] == DBNull.Value ? null : dr["FORMID"].ToString(); master.INSTANCEID = dr["INSTANCEID"] == DBNull.Value ? null : dr["INSTANCEID"].ToString(); //master.KPITIMEXML = dr["KPITIMEXML"] == DBNull.Value ? null : dr["KPITIMEXML"].ToString(); master.MODELCODE = dr["MODELCODE"] == DBNull.Value ? null : dr["MODELCODE"].ToString(); master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>(); listMaster.Add(master); listMasterID.Add("'" + master.FLOWRECORDMASTERID + "'"); #endregion } dr.Close(); if (listMasterID.Count > 0) { #region detail string sql = @"select * from FLOW_FLOWRECORDDETAIL_T where FLOWRECORDMASTERID in (" + string.Join(",", listMasterID.ToArray()) + ")"; //dr = cmd.ExecuteReader(); dr = dao.ExecuteReader(sql); while (dr.Read()) { #region detail FLOW_FLOWRECORDDETAIL_T detail = new FLOW_FLOWRECORDDETAIL_T(); detail.FLOW_FLOWRECORDMASTER_T = listMaster.FirstOrDefault(m => m.FLOWRECORDMASTERID == dr["FLOWRECORDMASTERID"].ToString()); detail.FLOW_FLOWRECORDMASTER_T.FLOW_FLOWRECORDDETAIL_T.Add(detail); detail.AGENTEDITDATE = dr["AGENTEDITDATE"] == DBNull.Value ? null : (DateTime?)dr["AGENTEDITDATE"]; detail.AGENTERNAME = dr["AGENTERNAME"] == DBNull.Value ? null : dr["AGENTERNAME"].ToString(); detail.AGENTUSERID = dr["AGENTUSERID"] == DBNull.Value ? null : dr["AGENTUSERID"].ToString(); detail.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString(); detail.CONTENT = dr["CONTENT"] == DBNull.Value ? null : dr["CONTENT"].ToString(); detail.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString(); detail.CREATEDATE = (DateTime)dr["CREATEDATE"]; detail.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString(); detail.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString(); detail.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString(); detail.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString(); detail.EDITCOMPANYID = dr["EDITCOMPANYID"] == DBNull.Value ? null : dr["EDITCOMPANYID"].ToString(); detail.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"]; detail.EDITDEPARTMENTID = dr["EDITDEPARTMENTID"] == DBNull.Value ? null : dr["EDITDEPARTMENTID"].ToString(); detail.EDITPOSTID = dr["EDITPOSTID"] == DBNull.Value ? null : dr["EDITPOSTID"].ToString(); detail.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString(); detail.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString(); detail.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString(); //detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString(); detail.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"] == DBNull.Value ? null : dr["FLOWRECORDDETAILID"].ToString(); detail.PARENTSTATEID = dr["PARENTSTATEID"] == DBNull.Value ? null : dr["PARENTSTATEID"].ToString(); detail.STATECODE = dr["STATECODE"] == DBNull.Value ? null : dr["STATECODE"].ToString(); #endregion } dr.Close(); #endregion } return listMaster; #endregion } catch (Exception ex) { if (dr != null && !dr.IsClosed) { dr.Close(); } throw ex; } }
/// <summary> /// 更新:[流程审批实例表] /// </summary> /// <param name="con">//OracleConnection 连接对象</param> /// <param name="master">流程审批实例表</param> public static int UpdateMasterINSTANCEID(FLOW_FLOWRECORDMASTER_T master) { try { string updSql = "UPDATE FLOW_FLOWRECORDMASTER_T SET INSTANCEID=@INSTANCEID WHERE FLOWRECORDMASTERID=@FLOWRECORDMASTERID"; Parameter[] pageparm = { new Parameter("@FLOWRECORDMASTERID"), new Parameter("@INSTANCEID") }; pageparm[0].ParameterValue = master.FLOWRECORDMASTERID;// pageparm[1].ParameterValue = master.INSTANCEID;// int n = dao.ExecuteNonQuery(updSql, pageparm); Tracer.Debug("FLOW_FLOWRECORDMASTER_TDAL->UpdateMasterINSTANCEID 更新:[流程审批实例表]成功:master.FLOWRECORDMASTERID=" + master.FLOWRECORDMASTERID + ";master.INSTANCEID=" + master.INSTANCEID + ";时间:" + DateTime.Now.ToString()); return n; } catch (Exception ex) { Tracer.Debug("FLOW_FLOWRECORDMASTER_TDAL->UpdateMasterINSTANCEID 更新:[流程审批实例表]失败:master.FLOWRECORDMASTERID=" + master.FLOWRECORDMASTERID + ";master.INSTANCEID=" + master.INSTANCEID + ";时间:" + DateTime.Now.ToString() + "\r\n异常信息:" + ex.Message); throw new Exception("FLOW_FLOWRECORDMASTER_TDAL->UpdateMasterINSTANCEID:" + ex.Message); } }
public static FLOW_FLOWRECORDMASTER_T GetFLOW_FLOWRECORDMASTER_T(string masterID) { IDataReader dr = null; try { string sql = @"select * from FLOW_FLOWRECORDMASTER_T where flowrecordmasterid='{0}'"; FLOW_FLOWRECORDMASTER_T master = null; sql = string.Format(sql, masterID); ////OracleCommand command = con.CreateCommand(); //command.CommandText = sql; //dr = command.ExecuteReader(); dr = dao.ExecuteReader(sql); while (dr.Read()) { #region master master = new FLOW_FLOWRECORDMASTER_T(); master.ACTIVEROLE = dr["ACTIVEROLE"] == DBNull.Value ? null : dr["ACTIVEROLE"].ToString(); master.BUSINESSOBJECT = dr["BUSINESSOBJECT"] == DBNull.Value ? null : dr["BUSINESSOBJECT"].ToString(); master.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString(); master.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString(); master.CREATEDATE = (DateTime)dr["CREATEDATE"]; master.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString(); master.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString(); master.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString(); master.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString(); master.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"]; master.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString(); master.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString(); master.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString(); master.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString(); master.FLOWSELECTTYPE = dr["FLOWSELECTTYPE"] == DBNull.Value ? null : dr["FLOWSELECTTYPE"].ToString(); master.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString(); master.FORMID = dr["FORMID"] == DBNull.Value ? null : dr["FORMID"].ToString(); master.INSTANCEID = dr["INSTANCEID"] == DBNull.Value ? null : dr["INSTANCEID"].ToString(); master.KPITIMEXML = dr["KPITIMEXML"] == DBNull.Value ? null : dr["KPITIMEXML"].ToString(); master.MODELCODE = dr["MODELCODE"] == DBNull.Value ? null : dr["MODELCODE"].ToString(); #endregion } dr.Close(); return master; } catch (Exception ex) { if (dr != null && !dr.IsClosed) { dr.Close(); } throw new Exception("GetFLOW_FLOWRECORDMASTER_T:" + ex.Message + ex.InnerException); } }
/// <summary> /// 我的单据新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool AddPersonalRecord( SubmitData submitData, string state, FlowUser user, FLOW_FLOWRECORDMASTER_T entity) { try { string SystemCode = string.Empty; string modeCode = string.Empty; string modeName = string.Empty; string strEntityKey = string.Empty; string msgOpen = string.Empty; string strBusiness = submitData.XML; SetFileFromBusinessXml(strBusiness, ref SystemCode, ref modeCode, ref modeName, ref strEntityKey, ref msgOpen); Tracer.Debug("在填写我的单据时候的参数CHECKSTATE:" + state + "||模块名称:" + user.ModelName); T_PF_PERSONALRECORD model = new T_PF_PERSONALRECORD(); model.SYSTYPE = user.SysCode; model.PERSONALRECORDID = Guid.NewGuid().ToString(); model.ISFORWARD = "0"; model.ISVIEW = "0"; switch (state) { case "1": model.MODELCODE = submitData.ModelCode; model.MODELID = submitData.FormID; if (string.IsNullOrWhiteSpace(submitData.SumbitUserID) && string.IsNullOrWhiteSpace(submitData.SumbitCompanyID)) { //预算有这样情况submitData.SumbitUserID为空 model.OWNERCOMPANYID = submitData.ApprovalUser.CompanyID; model.OWNERDEPARTMENTID = submitData.ApprovalUser.DepartmentID; model.OWNERID = submitData.ApprovalUser.UserID; model.OWNERPOSTID = submitData.ApprovalUser.PostID; } else { model.OWNERCOMPANYID = submitData.SumbitCompanyID; model.OWNERDEPARTMENTID = submitData.SumbitDeparmentID; model.OWNERID = submitData.SumbitUserID; model.OWNERPOSTID = submitData.SumbitPostID; } model.MODELDESCRIPTION = string.Format("您{0}的[{1}]正在审核中!", DateTime.Now.ToString("MM月dd日HH:mm"), user.ModelName.Trim()); break; case "2": model.MODELID = submitData.FormID; model.MODELCODE = entity.MODELCODE; model.MODELDESCRIPTION = string.Format("您{0}的[{1}]已经审核通过!", entity.CREATEDATE.Value.ToString("MM月dd日HH:mm"), user.ModelName.Trim()); break; case "3": model.MODELID = submitData.FormID; model.MODELCODE = entity.MODELCODE; model.MODELDESCRIPTION = string.Format("您{0}的[{1}]已经审核不通过!", entity.CREATEDATE.Value.ToString("MM月dd日HH:mm"), user.ModelName.Trim()); break; } model.CHECKSTATE = state; model.CREATEDATE = DateTime.Now; model.CONFIGINFO = msgOpen;// ConvertXML(submitData); if (!string.IsNullOrWhiteSpace(model.CONFIGINFO)) { EnginFlowDAL dal = new EnginFlowDAL(); string recordID = dal.GetExistRecord(model.SYSTYPE, model.MODELCODE, model.MODELID, model.ISFORWARD); if (recordID != "") { return dal.UpdatePersonalRecord(model, recordID); } else { return dal.AddPersonalRecord(model); } } else { Tracer.Debug("在填写我的单据时候获取不到配置FormID:" + submitData.FormID + ""); } return false; } catch (Exception ex) { Tracer.Debug("在填写我的单据时候错误FormID:" + submitData.FormID + "||Exception" + ex.Message); throw new Exception(ex.Message, ex); } }
/// <summary> /// 获取流程 /// </summary> /// <param name="con">//OracleConnection连接对象</param> /// <param name="FormID">表单ID</param> /// <param name="FlowGUID">明细ID</param> /// <param name="CheckState">审批状态(同意:1,不同意:0 ,未处理:2,会签同意7,会签不同意8)</param> /// <param name="Flag">审批状态(已审批:1,未审批:0)</param> /// <param name="ModelCode">模块代码</param> /// <param name="CompanyID">创建公司ID</param> /// <param name="EditUserID">操作人</param> /// <param name="FlowType">流程类型(0:审批流程,1:任务流程)</param> /// <returns></returns> public static List<FLOW_FLOWRECORDDETAIL_T> GetFlowRecordV(string FormID, string FlowGUID, string CheckState, string Flag, string ModelCode, string CompanyID, string EditUserID, List<string> FlowType) { #region sql StringBuilder sb = new StringBuilder(); sb.Append(@"select FLOW_FLOWRECORDDETAIL_T.* from FLOW_FLOWRECORDDETAIL_T join FLOW_FLOWRECORDMASTER_T on FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID=FLOW_FLOWRECORDDETAIL_T.FLOWRECORDMASTERID where 1=1 "); if (!string.IsNullOrEmpty(FlowGUID)) { sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID='" + FlowGUID + "'"); } if (!string.IsNullOrEmpty(Flag)) { sb.Append(" and FLOW_FLOWRECORDDETAIL_T.FLAG='" + Flag + "'"); } if (!string.IsNullOrEmpty(EditUserID)) { sb.Append(" and (FLOW_FLOWRECORDDETAIL_T.EDITUSERID='" + EditUserID + "' or FLOW_FLOWRECORDDETAIL_T.AGENTUSERID='" + EditUserID + "')"); } if (!string.IsNullOrEmpty(CompanyID)) { sb.Append(" and FLOW_FLOWRECORDMASTER_T.CREATECOMPANYID='" + CompanyID + "'"); } if (!string.IsNullOrEmpty(ModelCode)) { sb.Append(" and FLOW_FLOWRECORDMASTER_T.MODELCODE='" + ModelCode + "'"); } if (!string.IsNullOrEmpty(FormID)) { sb.Append(" and FLOW_FLOWRECORDMASTER_T.FORMID='" + FormID + "'"); } if (!string.IsNullOrEmpty(CheckState)) { sb.Append(" and FLOW_FLOWRECORDMASTER_T.CHECKSTATE='" + CheckState + "'"); } if (FlowType != null) { if (FlowType.Count == 1) { sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE='" + FlowType[0] + "'"); } else { sb.Append(" and FLOW_FLOWRECORDMASTER_T.FLOWTYPE in ("); for (int i = 0; i < FlowType.Count - 1; i++) { sb.Append("'" + FlowType[i] + "',"); } sb.Append("'" + FlowType[FlowType.Count - 1] + "'"); sb.Append(")"); } } #endregion List<FLOW_FLOWRECORDDETAIL_T> listDetail = new List<FLOW_FLOWRECORDDETAIL_T>(); List<FLOW_FLOWRECORDMASTER_T> listMaster = new List<FLOW_FLOWRECORDMASTER_T>(); IDataReader dr = null; try { List<string> listDetailID = new List<string>(); List<string> listMasterID = new List<string>(); ////OracleCommand command = con.CreateCommand(); //command.CommandText = sb.ToString(); //dr = command.ExecuteReader(); dr = dao.ExecuteReader(sb.ToString(), null); while (dr.Read()) { #region detail FLOW_FLOWRECORDDETAIL_T detail = new FLOW_FLOWRECORDDETAIL_T(); detail.FLOW_FLOWRECORDMASTER_T = new FLOW_FLOWRECORDMASTER_T(); detail.AGENTEDITDATE = dr["AGENTEDITDATE"] == DBNull.Value ? null : (DateTime?)dr["AGENTEDITDATE"]; detail.AGENTERNAME = dr["AGENTERNAME"] == DBNull.Value ? null : dr["AGENTERNAME"].ToString(); detail.AGENTUSERID = dr["AGENTUSERID"] == DBNull.Value ? null : dr["AGENTUSERID"].ToString(); detail.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString(); detail.CONTENT = dr["CONTENT"] == DBNull.Value ? null : dr["CONTENT"].ToString(); detail.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString(); detail.CREATEDATE = (DateTime)dr["CREATEDATE"]; detail.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString(); detail.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString(); detail.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString(); detail.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString(); detail.EDITCOMPANYID = dr["EDITCOMPANYID"] == DBNull.Value ? null : dr["EDITCOMPANYID"].ToString(); detail.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"]; detail.EDITDEPARTMENTID = dr["EDITDEPARTMENTID"] == DBNull.Value ? null : dr["EDITDEPARTMENTID"].ToString(); detail.EDITPOSTID = dr["EDITPOSTID"] == DBNull.Value ? null : dr["EDITPOSTID"].ToString(); detail.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString(); detail.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString(); detail.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString(); detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString(); detail.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"] == DBNull.Value ? null : dr["FLOWRECORDDETAILID"].ToString(); detail.PARENTSTATEID = dr["PARENTSTATEID"] == DBNull.Value ? null : dr["PARENTSTATEID"].ToString(); detail.STATECODE = dr["STATECODE"] == DBNull.Value ? null : dr["STATECODE"].ToString(); detail.FLOW_CONSULTATION_T = new EntityCollection<FLOW_CONSULTATION_T>(); listDetail.Add(detail); listDetailID.Add("'" + detail.FLOWRECORDDETAILID + "'"); if (!listMasterID.Contains(detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID)) { listMasterID.Add("'" + detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID + "'"); } #endregion } dr.Close(); #region master if (listMasterID.Count > 0) { string sql= @"select CHECKSTATE,CREATECOMPANYID,CREATEDATE,CREATEDEPARTMENTID,CREATEPOSTID,CREATEUSERID,CREATEUSERNAME, EDITDATE,EDITUSERID,EDITUSERNAME,FLOWCODE,FLOWRECORDMASTERID,FLOWSELECTTYPE,FLOWTYPE,FORMID,INSTANCEID,MODELCODE from FLOW_FLOWRECORDMASTER_T where FLOWRECORDMASTERID in (" + string.Join(",", listMasterID.ToArray()) + ")"; dr = dao.ExecuteReader(sql); while (dr.Read()) { #region master FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T(); //master.ACTIVEROLE = dr["ACTIVEROLE"] == DBNull.Value ? null : dr["ACTIVEROLE"].ToString(); //master.BUSINESSOBJECT = dr["BUSINESSOBJECT"] == DBNull.Value ? null : dr["BUSINESSOBJECT"].ToString(); master.CHECKSTATE = dr["CHECKSTATE"] == DBNull.Value ? null : dr["CHECKSTATE"].ToString(); master.CREATECOMPANYID = dr["CREATECOMPANYID"] == DBNull.Value ? null : dr["CREATECOMPANYID"].ToString(); master.CREATEDATE = (DateTime)dr["CREATEDATE"]; master.CREATEDEPARTMENTID = dr["CREATEDEPARTMENTID"] == DBNull.Value ? null : dr["CREATEDEPARTMENTID"].ToString(); master.CREATEPOSTID = dr["CREATEPOSTID"] == DBNull.Value ? null : dr["CREATEPOSTID"].ToString(); master.CREATEUSERID = dr["CREATEUSERID"] == DBNull.Value ? null : dr["CREATEUSERID"].ToString(); master.CREATEUSERNAME = dr["CREATEUSERNAME"] == DBNull.Value ? null : dr["CREATEUSERNAME"].ToString(); master.EDITDATE = dr["EDITDATE"] == DBNull.Value ? null : (DateTime?)dr["EDITDATE"]; master.EDITUSERID = dr["EDITUSERID"] == DBNull.Value ? null : dr["EDITUSERID"].ToString(); master.EDITUSERNAME = dr["EDITUSERNAME"] == DBNull.Value ? null : dr["EDITUSERNAME"].ToString(); master.FLOWCODE = dr["FLOWCODE"] == DBNull.Value ? null : dr["FLOWCODE"].ToString(); master.FLOWRECORDMASTERID = dr["FLOWRECORDMASTERID"].ToString(); master.FLOWSELECTTYPE = dr["FLOWSELECTTYPE"] == DBNull.Value ? null : dr["FLOWSELECTTYPE"].ToString(); master.FLOWTYPE = dr["FLOWTYPE"] == DBNull.Value ? null : dr["FLOWTYPE"].ToString(); master.FORMID = dr["FORMID"] == DBNull.Value ? null : dr["FORMID"].ToString(); master.INSTANCEID = dr["INSTANCEID"] == DBNull.Value ? null : dr["INSTANCEID"].ToString(); //master.KPITIMEXML = dr["KPITIMEXML"] == DBNull.Value ? null : dr["KPITIMEXML"].ToString(); master.MODELCODE = dr["MODELCODE"] == DBNull.Value ? null : dr["MODELCODE"].ToString(); master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>(); listMaster.Add(master); #endregion } dr.Close(); } #endregion #region FLOW_CONSULTATION_T List<FLOW_CONSULTATION_T> listConsultation = new List<FLOW_CONSULTATION_T>(); if (!string.IsNullOrEmpty(FormID) && !string.IsNullOrEmpty(ModelCode)) { if (listDetailID.Count > 0) { string sql = @"select * from FLOW_CONSULTATION_T where FLOWRECORDDETAILID in (" + string.Join(",", listDetailID.ToArray()) + ")"; dr = dao.ExecuteReader(sql); while (dr.Read()) { #region FLOW_CONSULTATION_T FLOW_CONSULTATION_T consul = new FLOW_CONSULTATION_T(); consul.CONSULTATIONCONTENT = dr["CONSULTATIONCONTENT"] == DBNull.Value ? null : dr["CONSULTATIONCONTENT"].ToString(); consul.CONSULTATIONDATE = dr["CONSULTATIONDATE"] == DBNull.Value ? null : (DateTime?)dr["CONSULTATIONDATE"]; consul.CONSULTATIONID = dr["CONSULTATIONID"] == DBNull.Value ? null : dr["CONSULTATIONID"].ToString(); consul.CONSULTATIONUSERID = dr["CONSULTATIONUSERID"] == DBNull.Value ? null : dr["CONSULTATIONUSERID"].ToString(); consul.CONSULTATIONUSERNAME = dr["CONSULTATIONUSERNAME"] == DBNull.Value ? null : dr["CONSULTATIONUSERNAME"].ToString(); consul.FLAG = dr["FLAG"] == DBNull.Value ? null : dr["FLAG"].ToString(); consul.FLOW_FLOWRECORDDETAIL_T = new FLOW_FLOWRECORDDETAIL_T(); consul.FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID = dr["FLOWRECORDDETAILID"].ToString(); consul.REPLYCONTENT = dr["REPLYCONTENT"] == DBNull.Value ? null : dr["REPLYCONTENT"].ToString(); consul.REPLYDATE = dr["REPLYDATE"] == DBNull.Value ? null : (DateTime?)dr["REPLYDATE"]; consul.REPLYUSERID = dr["REPLYUSERID"] == DBNull.Value ? null : dr["REPLYUSERID"].ToString(); consul.REPLYUSERNAME = dr["REPLYUSERNAME"] == DBNull.Value ? null : dr["REPLYUSERNAME"].ToString(); listConsultation.Add(consul); #endregion } dr.Close(); } } #endregion listDetail.ForEach(detail => { #region FLOW_FLOWRECORDMASTER_T master = listMaster.FirstOrDefault(m => m.FLOWRECORDMASTERID == detail.FLOW_FLOWRECORDMASTER_T.FLOWRECORDMASTERID); detail.FLOW_FLOWRECORDMASTER_T = master; if (master.FLOW_FLOWRECORDDETAIL_T == null) { master.FLOW_FLOWRECORDDETAIL_T = new EntityCollection<FLOW_FLOWRECORDDETAIL_T>(); } master.FLOW_FLOWRECORDDETAIL_T.Add(detail); if (!string.IsNullOrEmpty(FormID) && !string.IsNullOrEmpty(ModelCode)) { IEnumerable<FLOW_CONSULTATION_T> iFLOW_CONSULTATION_T = listConsultation.Where(c => c.FLOW_FLOWRECORDDETAIL_T.FLOWRECORDDETAILID == detail.FLOWRECORDDETAILID); if (iFLOW_CONSULTATION_T.Count() > 0) { detail.FLOW_CONSULTATION_T = new EntityCollection<FLOW_CONSULTATION_T>(); foreach (var consultation in iFLOW_CONSULTATION_T) { consultation.FLOW_FLOWRECORDDETAIL_T = detail; detail.FLOW_CONSULTATION_T.Add(consultation); } } } #endregion }); return listDetail; } catch (Exception ex) { if (dr != null && !dr.IsClosed) { dr.Close(); } throw new Exception("FLOW_FLOWRECORDDETAIL_TDAL->GetFlowRecordV:-" + FormID + "-" + ex.Message + ex.InnerException); } }
/// <summary> /// 得到审核主表最新的一个实体 /// </summary> /// <param name="conn">//OracleConnection</param> /// <param name="formid">formid</param> /// <returns></returns> public FLOW_FLOWRECORDMASTER_T GetFlowerMasterIDByFormid(string formid) { try { FLOW_FLOWRECORDMASTER_T model = new FLOW_FLOWRECORDMASTER_T(); string selSql = "SELECT INSTANCEID,FORMID,EDITUSERID,EDITUSERNAME FROM FLOW_FLOWRECORDMASTER_T WHERE FORMID=:FORMID ORDER BY CREATEDATE DESC"; Parameter[] pageparm = { new Parameter(":FORMID",null) }; pageparm[0].ParameterValue = formid; ParameterCollection pras = new ParameterCollection(); foreach (var item in pageparm) { pras.Add(item); } DataTable dt = dao.GetDataTable(selSql, CommandType.Text, pras); if (dt.Rows.Count > 0) {//多次提交单据的时候,取最新的一条数据 model.INSTANCEID = dt.Rows[0]["INSTANCEID"].ToString();// model.FORMID = dt.Rows[0]["FORMID"].ToString();// model.EDITUSERID = dt.Rows[0]["EDITUSERID"].ToString();// model.EDITUSERNAME = dt.Rows[0]["EDITUSERNAME"].ToString();// } return model; } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// 新增流程(对数据库操作) /// </summary> /// <param name="ApprovalData"></param> /// <param name="APPDataResult"></param> /// <returns></returns> public DataResult SubmitFlow(SubmitData submitData, DataResult dataResult, ref FlowUser user) { WorkflowInstance instance = null; try { #region 获取定义的流程 user.TrackingMessage += "获取定义的流程.GetFlowByModelName:submitData.ApprovalUser.DepartmentID=" + submitData.ApprovalUser.DepartmentID + ";OrgType='" + ((int)submitData.FlowType).ToString() + "'"; List<FLOW_MODELFLOWRELATION_T> MODELFLOWRELATION = GetFlowByModelName(submitData.ApprovalUser.CompanyID, submitData.ApprovalUser.DepartmentID, submitData.ModelCode, ((int)submitData.FlowType).ToString(), ref user);//对数据库操作 if (MODELFLOWRELATION == null || MODELFLOWRELATION.Count == 0) { dataResult.FlowResult = FlowResult.FAIL; dataResult.Err = "没有找到可使用的流程"; if (submitData.ApprovalUser.CompanyID == user.CompayID && submitData.ApprovalUser.DepartmentID == user.DepartmentID) { dataResult.Err = "没有找到公司[ " + user.CompayName + " ]下部门[ " + user.DepartmentName + " ]的匹配流程返回"; } else { dataResult.Err = "没有找到公司[ " + user.CompayName + " ]的可使用匹配流程"; } return dataResult; } #endregion FLOW_MODELFLOWRELATION_T flowRelation = MODELFLOWRELATION[0];//只取其中一条流程 FLOW_FLOWDEFINE_T flowDefine = flowRelation.FLOW_FLOWDEFINE_T; user.FlowCode = flowDefine.FLOWCODE;//流程代码 user.FlowName = flowDefine.DESCRIPTION;//流程名称 if (flowDefine.RULES != null && flowDefine.RULES.Trim() == "") { flowDefine.RULES = null; } if (string.IsNullOrEmpty(flowDefine.LAYOUT)) { dataResult.Err = "公司[ " + user.CompayName + " ]的匹配流程定义为空!"; return dataResult; } workflowRuntime = SMTWorkFlowManage.CreateWorkFlowRuntime(true); instance = SMTWorkFlowManage.CreateWorkflowInstance(workflowRuntime, flowDefine.LAYOUT, flowDefine.RULES); Tracer.Debug("新增 FormID=" + user.FormID + " 流程名称=" + flowDefine.DESCRIPTION + "(" + flowDefine.FLOWCODE + ") 提交人=" + user.UserName + " 公司名称=" + user.CompayName + " 部门名称=" + user.DepartmentName + " 岗位名称=" + user.PostName + " WorkflowInstance ID=" + instance.InstanceId.ToString()); #region master赋值 FLOW_FLOWRECORDMASTER_T master = new FLOW_FLOWRECORDMASTER_T(); master.INSTANCEID = instance.InstanceId.ToString(); master.BUSINESSOBJECT = submitData.XML; master.FORMID = submitData.FormID; master.MODELCODE = submitData.ModelCode; master.ACTIVEROLE = FlowUtility.GetActiveRlue(flowDefine.LAYOUT);//此字段可以保存当前节点ActivitID master.FLOWTYPE = ((int)submitData.FlowType).ToString(); master.FLOWSELECTTYPE = ((int)submitData.FlowSelectType).ToString(); master.FLOWCODE = flowDefine.FLOWCODE; #endregion #region 获取下一状态数据 user.TrackingMessage += "FORMID=" + user.FormID + "获取下一状态数据(开始)"; TmFlowToNextStep(submitData.ApprovalUser.CompanyID, flowDefine.LAYOUT, flowDefine.RULES, master.ACTIVEROLE, submitData.XML, submitData.ApprovalUser.UserID, submitData.ApprovalUser.PostID, submitData.FlowType, ref dataResult, ref user); Tracer.Debug("FormID=" + user.FormID + " 获取下一状态数据! dataResult.FlowResult=" + dataResult.FlowResult.ToString()); user.TrackingMessage += "FORMID=" + user.FormID + "获取下一状态数据(结束)"; if (dataResult.FlowResult == FlowResult.FAIL) { return dataResult; } submitData.NextStateCode = dataResult.AppState; if (dataResult.IsCountersign) { #region 检查会签是角色是否有审核人员 #region 记录日志 if (submitData.DictCounterUser != null) { Tracer.Debug("FormID=" + user.FormID + " submitData.DictCounterUser="******"FormID=" + user.FormID + " dataResult.DictCounterUser="******"FormID=" + user.FormID + " submitData.DictCounterUser 会签角色里没有发现有审核人员,所以返回!"); return dataResult; } } else { if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0) { submitData.DictCounterUser = dataResult.DictCounterUser; } } #endregion } else { #region 检查非会签角色里是否有审核人员 if (dataResult.FlowResult == FlowResult.MULTIUSER) { Tracer.Debug("FormID=" + user.FormID + " 发现有多个审核人员!"); if (submitData.NextApprovalUser == null || (FlowUtility.GetString(submitData.NextApprovalUser.UserID) == "" || FlowUtility.GetString(submitData.NextApprovalUser.UserName) == "")) { Tracer.Debug("FormID=" + user.FormID + " 发现有多个审核人员!但下一审核人为空,所以返回选择审核人!"); return dataResult; } else { Tracer.Debug("FormID=" + user.FormID + " 发现有多个审核人员,但发现下一审核人不为空 usrid=" + (FlowUtility.GetString(submitData.NextApprovalUser.UserID) + " 姓名=" + FlowUtility.GetString(submitData.NextApprovalUser.UserName))); } } else { if (submitData.DictCounterUser == null || submitData.DictCounterUser.Keys.Count == 0) { submitData.NextApprovalUser = dataResult.UserInfo[0]; } } #endregion } #endregion #region 流程明细赋值 //当提交人为空时,创建人变成单据所属人,如果不为空,则创建人保存为系统登录人;创建公司,部门,岗位,仍然保存单据所属人的公司,部门,岗位 FLOW_FLOWRECORDDETAIL_T entity = new FLOW_FLOWRECORDDETAIL_T(); entity.FLOW_FLOWRECORDMASTER_T = master; entity.CREATECOMPANYID = submitData.ApprovalUser.CompanyID; entity.CREATEDEPARTMENTID = submitData.ApprovalUser.DepartmentID; entity.CREATEPOSTID = submitData.ApprovalUser.PostID; entity.CREATEUSERID = string.IsNullOrEmpty(submitData.SumbitUserID) ? submitData.ApprovalUser.UserID : submitData.SumbitUserID; entity.CREATEUSERNAME = string.IsNullOrEmpty(submitData.SumbitUserName) ? submitData.ApprovalUser.UserName : submitData.SumbitUserName; #endregion #region 处理kpi时间 user.TrackingMessage += " 处理kpi时间\r\n"; string KPITime = ""; #region 加入缓存 string pscResult = CacheProvider.GetCache<string>(flowRelation.MODELFLOWRELATIONID); if (string.IsNullOrEmpty(pscResult)) { //ken 暂时屏蔽kpi //PerformanceServiceWS.PerformanceServiceClient psc = new PerformanceServiceWS.PerformanceServiceClient(); //pscResult = psc.GetKPIPointsByBusinessCode(flowRelation.MODELFLOWRELATIONID);//调用服务 //CacheProvider.Add<string>(flowRelation.MODELFLOWRELATIONID, pscResult); //psc.Close(); } #endregion //PerformanceServiceWS.PerformanceServiceClient psc = new PerformanceServiceWS.PerformanceServiceClient(); //string pscResult = psc.GetKPIPointsByBusinessCode(flowRelation.MODELFLOWRELATIONID);//调用服务 //psc.Close(); if (!string.IsNullOrEmpty(pscResult)) { XElement xe = XElement.Parse(pscResult); Func<XElement, bool> f = (x) => { XAttribute xid = x.Attribute("id"); XAttribute xvalue = x.Attribute("value"); if (xid == null || xvalue == null) return false; else { if (xid.Value == dataResult.AppState) return true; else return false; } }; XElement FlowNode = xe.Elements("FlowNode").FirstOrDefault(f); if (FlowNode != null) { KPITime = FlowNode.Attribute("value").Value; } } dataResult.KPITime = KPITime; master.KPITIMEXML = pscResult; user.TrackingMessage += " 处理kpi时间完成\r\n"; #endregion FlowDataType.FlowData FlowData = new FlowDataType.FlowData(); FlowData.xml = submitData.XML; if (!dataResult.IsCountersign) { #region 确定非会签的下一个审核人 UserInfo AppUser = new UserInfo(); //下一审核人 AppUser = submitData.NextApprovalUser; dataResult.UserInfo.Clear(); dataResult.UserInfo.Add(AppUser); //暂时不处理代理,ken2015-7-17 UserInfo AgentAppUser = null;// GetAgentUserInfo(submitData.ModelCode, AppUser.UserID);//查询是否启用了代理人 dataResult = AddOrUpdateFlowRecord(workflowRuntime, instance, entity, submitData.NextStateCode, AppUser, AgentAppUser, submitData.SubmitFlag, submitData.FlowType, ref user); //处理流程数据 dataResult.IsCountersign = false; dataResult.AgentUserInfo = AgentAppUser; #endregion } else { user.TrackingMessage += " 会签\r\n"; #region 确定会签角色里的审核人员 //Tracer.Debug("-----DoFlowRecord_Add:" + DateTime.Now.ToString()+"\n"); dataResult.DictCounterUser = submitData.DictCounterUser; Dictionary<UserInfo, UserInfo> dictAgentUserInfo = GetAgentUserInfo2(submitData.ModelCode, submitData.DictCounterUser); dataResult = DoFlowRecord_Add(workflowRuntime, instance, entity, submitData.NextStateCode, submitData.DictCounterUser, dictAgentUserInfo, submitData.SubmitFlag, submitData.FlowType); //处理流程数据 //Tracer.Debug("-----DoFlowRecord_AddEnd:" + DateTime.Now.ToString()+"\n"); dataResult.IsCountersign = true; dataResult.DictAgentUserInfo = dictAgentUserInfo; #endregion user.TrackingMessage += "会签完成\r\n"; } user.TrackingMessage += "激发流程引擎执行到一下流程\r\n"; #region 激发流程引擎执行到一下流程 // string ss = ""; // int n = 0; // //StateMachineWorkflowInstance workflowinstance = new StateMachineWorkflowInstance(workflowRuntime, instance.InstanceId); // //ManualWorkflowSchedulerService scheduleService = workflowRuntime.GetService(typeof(ManualWorkflowSchedulerService)) as ManualWorkflowSchedulerService; //if (dataResult.AppState == null || dataResult.AppState == "") // { // user.TrackingMessage += " workflowRuntime.GetService<FlowEvent>()\r\n"; // //scheduleService.RunWorkflow(workflowinstance.InstanceId); // //workflowRuntime.GetService<FlowEvent>().OnDoFlow(instance.InstanceId, FlowData); //激发流程引擎执行到一下流程 // //scheduleService.RunWorkflow(workflowinstance.InstanceId); // user.TrackingMessage += " workflowRuntime.GetService<FlowEvent>()完成\r\n"; // } // else // { // //scheduleService.RunWorkflow(workflowinstance.InstanceId); // //workflowinstance.SetState(dataResult.AppState); //流程跳转到指定节点 // } #endregion //user.TrackingMessage += "激发流程引擎执行到一下流程完成\r\n"; //user.TrackingMessage += "System.Threading.Thread.Sleep(1000)\r\n"; //System.Threading.Thread.Sleep(1000);//当前用到 dataResult.ModelFlowRelationID = flowRelation.MODELFLOWRELATIONID; //返回关联ID dataResult.KPITime = KPITime; //dataResult.CanSendMessage = true; if (submitData.FlowType == FlowType.Task) { dataResult.SubModelCode = FlowUtility.GetSubModelCode(master.ACTIVEROLE, dataResult.AppState); //返回下一子模块代码 } //user.TrackingMessage += "System.Threading.Thread.Sleep(1000)完成\r\n"; return dataResult; } catch (Exception e) { user.ErrorMsg += "新增流程出错 FormID=" + user.FormID + " CompayName=" + user.CompayName + "FlowName=" + user.FlowName + "异常信息:\r\n" + e.ToString() + "\r\n"; Tracer.Debug("FormID=" + user.FormID + " CompayName=" + user.CompayName + "FlowName=" + user.FlowName + " 新增流程出错,异常信息:\r\n" + e.ToString()); throw new Exception("FormID=" + user.FormID + " 时间:" + DateTime.Now.ToString() + " 新增流程出错,请联系管理员! "); } finally { instance = null; SMTWorkFlowManage.ColseWorkFlowRuntime(workflowRuntime); } }