public void Index() { var context = HttpContext; string action = Request.Params["Action"] ?? ""; string express = Request.Params["ExpressNumber"] ?? ""; string mortgageId = Request.Params["MortgageId"] ?? ""; string model = "<option value='[Value]'>[Name]</option>"; string result = ""; if (action == "Load") { string sql = "SELECT A.OBJECTID,A.NAME FROM I_MORTGAGE A LEFT JOIN OT_INSTANCECONTEXT B ON A.OBJECTID = B.BIZOBJECTID LEFT JOIN OT_WORKITEM C ON B.OBJECTID = C.INSTANCEID " + "WHERE C.ACTIVITYCODE = 'Activity13'"; DataTable dt = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sql); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { result += model .Replace("[Name]", dr["NAME"] == null || dr["NAME"] == DBNull.Value ? "" : dr["NAME"].ToString()) .Replace("[Value]", dr["OBJECTID"] == null || dr["OBJECTID"] == DBNull.Value ? "" : dr["OBJECTID"].ToString()); } } } else { if (!string.IsNullOrEmpty(mortgageId) || mortgageId != "|") { var listId = mortgageId.Split('|'); try { foreach (var t in listId) { if (!string.IsNullOrEmpty(t)) { UserValidator userInSession = Session[Sessions.GetUserValidator()] as UserValidator; string instanceId = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT OBJECTID FROM OT_INSTANCECONTEXT WHERE BIZOBJECTID = '" + t + "'").ToString(); string workItemId = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT OBJECTID FROM OT_WORKITEM WHERE INSTANCEID = '" + instanceId + "'").ToString(); List <DataItemParam> dataList = new List <DataItemParam> { new DataItemParam { ItemName = "expressNumber", ItemValue = express } }; BPMServiceResult re = SubmitItem("Mortgage", instanceId, workItemId, (OThinker.Data.BoolMatchValue) 1, "", userInSession.UserCode, dataList); result = re.Success ? "快递单号提交成功" : "快递单号提交失败"; } } } catch (Exception ex) { result = ex.Message; } } else { result = "请选择抵押流程"; } } context.Response.Write(result); }
public void Index() { var context = HttpContext; string data = ""; using (StreamReader sr = new StreamReader(context.Request.InputStream)) { data = sr.ReadToEnd(); JObject jtoken = JObject.Parse(data); data = jtoken["data"].ToString(); } AppUtility.Engine.LogWriter.Write("CRM_To_H3接口风险点干预流程数据:" + data); JavaScriptSerializer json = new JavaScriptSerializer(); WorkFlowMethod.Return result = new WorkFlowMethod.Return(); try { //data = "D7756CA4CAD69B232FCBDD7F9DBE3AE965C8D1AC54FB50518BCDC1725CCA1CD88A5FD5BC64BACA0C393440E2940EE851E96781BF17513B4C265C3F2822F905DDD35C10E28677CEBA042CBB142ED38015B630FF9A787E5395E8C0EEDF61175D634644B3B9998378480001C2F6691A47F8351CD6F68D4E217995FE481F77494D004F52C83F29747F70B8E66148858F850A0A6BEEFF0706424E1C500CD3DA0BEAD5C66275A6796B5E3C36221262678A70A00E7986BAE12506D81A73A67089861153802A6A743C0224990584045AD1B7381F9DE91BE2A503E92E94A1E552AE9E0E405CDA65C9FB3984C07D3EB2D0FE29A948E94146B6E5BFF61EE895A9B2FAE7A8D1E40C25C0DCE11BBCF46BCC1A3C6B5709C19B238F5ABC124D83332E3B2A434EFE063579C371DA886DA58702315F9356C2850B91BFBE508973EE7A582BEC10AFBEBE0107A687F4A5C45ABCB7CDFDB461C685A23AE70E22CCF21E0024A7B9E0024657140D80566B172422D3E02DA2BE4B9C3D9A82759DF0729268E792246AC9ABAD1AE8CAF2685C6C981BD059D752B5AE7474A3EF64FAC6CBA09ABF2D084507F5925B29ED591C208DB79261A47DA7EDC48A3A8460C884CFC8A48B24C7566F67868669D0ADBDF7733F60F1ED356E7DFAC66005D4EA260FF3B882C6A475AB8A733286C56CD4C53668516B5A0B0FDBA04F2F1C82AFA1EB4C06EFE5D9A1665A4359CF487B996E42BD9D74579E3CC8661A0F30FCFA7AC56DF8AD5A13416F2C4472AD90A098C50FD07C3FF5EFB9E6CABD5383C801E61B68F767CEFD60F84136EA91280723930FB23D7192E11F8683F3DE2508E4B3558B572BD80A329834AC2380BC1483A80F72DD397B1242628BAAD174E7F46F61B2E690E1BD4C4908A1AE7D9EF66DED5469085E166DDBE4F49A7B2C735FEADECB"; List <DataItemParam> dataList = new List <DataItemParam>(); data = DESDecrypt(data, "B^@s(d)+"); AppUtility.Engine.LogWriter.Write("CRM_To_H3接口风险点干预解密数据:" + data); JObject jsonData = JObject.Parse(data); RiskPoint rp = new RiskPoint(); rp.DealerID = jsonData["third_system_no"].ToString(); rp.Originator = jsonData["originator"].ToString(); List <RiskPointForm> rpfList = new List <RiskPointForm>(); foreach (var item in jsonData["distributorlist"]) { RiskPointForm rpf = new RiskPointForm(); rpf.Dealer = item["distributor"].ToString(); rpf.Reason = item["message"].ToString(); rpf.DealerID = item["third_system_no"].ToString(); rpfList.Add(rpf); } rp.riskpointform = rpfList; string str = JSSerializer.Serialize(rp); BPMServiceResult bpmresult = startWorkflowByEntityTrinsJson("RiskPoint", jsonData["originator"].ToString(), false, str); //;jsonData["originator"].ToString() "*****@*****.**" "18f923a7-5a5e-426d-94ae-a55ad1a4b239" //BPMServiceResult bpmresult = StartWorkflow("RiskPoint", jsonData["originator"].ToString(), false, dataList); //"*****@*****.**" "18f923a7-5a5e-426d-94ae-a55ad1a4b239" if (bpmresult.Success) { result.Result = "0"; result.Message = result.Message; } else { result.Result = "-1"; result.Message = result.Message; } } catch (Exception e) { result.Result = "-1"; result.Message = e.Message; } context.Response.Write(json.Serialize(result)); }
/// <summary> /// 提交工作项 /// </summary> /// <param name="workflowCode"></param> /// <param name="instanceId"></param> /// <param name="workItemId"></param> /// <param name="approval"></param> /// <param name="commentText"></param> /// <param name="userId"></param> /// <param name="values"></param> /// <returns></returns> private BPMServiceResult SubmitItem(string workflowCode, string instanceId, string workItemId, OThinker.Data.BoolMatchValue approval, string commentText, string userId, List <DataItemParam> values) { BPMServiceResult result = new BPMServiceResult(); try { string user = GetUserIDByCode(userId); if (user == null) { return(new BPMServiceResult(false, "流程启动失败,用户{" + userId + "}不存在。")); } OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplate workflowTemplate = Engine.WorkflowManager.GetDefaultWorkflow(workflowCode); InstanceContext ic = Engine.InstanceManager.GetInstanceContext(instanceId); if (ic == null) { return(new BPMServiceResult(false, "InstanceID错误,此ID在H3系统中不存在,请检查")); } OThinker.H3.DataModel.BizObjectSchema schema = Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode); OThinker.H3.DataModel.BizObject bo = new OThinker.H3.DataModel.BizObject(Engine.Organization, Engine.MetadataRepository, Engine.BizObjectManager, null, schema, user); bo.ObjectID = ic.BizObjectId; bo.Load(); foreach (DataItemParam value in values) { OThinker.H3.DataModel.PropertySchema property = schema.GetProperty(value.ItemName); if (property.LogicType == OThinker.H3.Data.DataLogicType.BizObjectArray) { var t = new List <OThinker.H3.DataModel.BizObject>(); foreach (List <DataItemParam> list in (IEnumerable)value.ItemValue) { var m = new OThinker.H3.DataModel.BizObject(Engine.Organization, Engine.MetadataRepository, Engine.BizObjectManager, null, property.ChildSchema, bo.OwnerId); foreach (DataItemParam dataItem in list) { if (m.Schema.ContainsField(dataItem.ItemName)) { m.SetValue(dataItem.ItemName, dataItem.ItemValue); } } t.Add(m); } bo[value.ItemName] = t.ToArray(); } else if (bo.Schema.ContainsField(value.ItemName)) { bo[value.ItemName] = value.ItemValue; } } bo.Update(); // 获取工作项 OThinker.H3.WorkItem.WorkItem item = Engine.WorkItemManager.GetWorkItem(workItemId); OThinker.H3.Instance.InstanceContext instance = Engine.InstanceManager.GetInstanceContext(item.InstanceId); // 结束工作项 Engine.WorkItemManager.FinishWorkItem(item.ObjectID, userId, OThinker.H3.WorkItem.AccessPoint.ExternalSystem, null, approval, commentText, null, OThinker.H3.WorkItem.ActionEventType.Forward, (int)OThinker.H3.Controllers.SheetButtonType.Submit); // 需要通知实例事件管理器结束事件 OThinker.H3.Messages.AsyncEndMessage endMessage = new OThinker.H3.Messages.AsyncEndMessage(OThinker.H3.Messages.MessageEmergencyType.Normal, item.InstanceId, item.ActivityCode, item.TokenId, approval, false, approval, true, null); Engine.InstanceManager.SendMessage(endMessage); result = new BPMServiceResult(true, "", null, "流程实例启动成功!", ""); } catch (Exception ex) { result = new BPMServiceResult(false, "流程实例启动失败!错误:" + ex.Message); } return(result); }
public System.Web.Mvc.ActionResult StartWorkflow(string appId, string pwd, string userCode, string workflowCode, bool finishStart, string paramValues) { BPMServiceResult result = new BPMServiceResult(); List<DataItemParam> listParams = JSSerializer.Deserialize<List<DataItemParam>>(paramValues); string workItemID, keyItem, errorMessage; workItemID = keyItem = errorMessage = string.Empty; try { OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplate workflowTemplate = this.Engine.WorkflowManager.GetDefaultWorkflow(workflowCode); if (workflowTemplate == null) { result = new BPMServiceResult(false, "流程模板不存在,模板编码:" + workflowCode + "。"); return Json(result); } // 查找流程发起人 OThinker.Organization.User user = this.Engine.Organization.GetUserByCode(userCode) as OThinker.Organization.User; if (user == null) { result = new BPMServiceResult(false, "用户{" + userCode + "}不存在。"); return Json(result); } OThinker.H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode); OThinker.H3.DataModel.BizObject bo = new OThinker.H3.DataModel.BizObject( this.Engine.Organization, this.Engine.MetadataRepository, this.Engine.BizObjectManager, null, schema, user.ObjectID, user.ParentID); if (listParams != null) { // 这里可以在创建流程的时候赋值 foreach (DataItemParam param in listParams) { OThinker.H3.DataModel.PropertySchema property = schema.GetProperty(param.ItemName); if (property == null) continue; SetItemValue(bo, property, param.ItemValue); } } bo.Create(); // 创建流程实例 string InstanceId = this.Engine.InstanceManager.CreateInstance( bo.ObjectID, workflowTemplate.WorkflowCode, workflowTemplate.WorkflowVersion, null, null, user.UnitID, null, false, InstanceContext.UnspecifiedID, null, Token.UnspecifiedID); if (listParams != null) { // 这里可以在创建流程的时候赋值 foreach (DataItemParam param in listParams) { OThinker.H3.DataModel.PropertySchema property = schema.GetProperty(param.ItemName); if (property == null) continue; if (property.LogicType == DataLogicType.Comment) {// 审核意见 CommentParam comment = JSSerializer.Deserialize<CommentParam>(param.ItemValue + string.Empty); this.Engine.BizObjectManager.AddComment(new Comment() { BizObjectId = bo.ObjectID, BizObjectSchemaCode = schema.SchemaCode, InstanceId = InstanceId, Activity = workflowTemplate.StartActivityCode, TokenId = 1, Approval = OThinker.Data.BoolMatchValue.True, DataField = property.Name, UserID = user.ObjectID, SignatureId = comment.SignatureId, Text = comment.Text }); } } } // 启动流程的消息 OThinker.H3.Messages.StartInstanceMessage startInstanceMessage = new OThinker.H3.Messages.StartInstanceMessage( MessageEmergencyType.Normal, InstanceId, workItemID, null, PriorityType.Normal, true, null, false, OThinker.H3.Instance.Token.UnspecifiedID, null); Engine.InstanceManager.SendMessage(startInstanceMessage); result = new BPMServiceResult(true, InstanceId, workItemID, "流程实例启动成功!", string.Empty); } catch (Exception ex) { result = new BPMServiceResult(false, ex.ToString()); } return Json(result, JsonRequestBehavior.AllowGet); }
/// <summary> /// 启动流程实例 /// </summary> /// <param name="workflowCode"></param> /// <param name="userCode"></param> /// <param name="finishStart"></param> /// <param name="paramValues"></param> /// <returns></returns> public BPMServiceResult StartWorkflow(string workflowCode, string userCode, bool finishStart, List <DataItemParam> paramValues) { //ValidateSoapHeader(); BPMServiceResult result = new BPMServiceResult(); try { // 获取模板 OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader workflowTemplate = GetWorkflowTemplate(workflowCode); if (workflowTemplate == null) { return(new BPMServiceResult(false, "流程启动失败,流程模板不存在,模板编码:" + workflowCode + "。")); } // 查找流程发起人 //OThinker.Organization.User user = Engine.Organization.GetUnitByCode(userCode) as Organization.User; string user = GetUserIDByCode(userCode); if (user == null) { return(new BPMServiceResult(false, "流程启动失败,用户{" + userCode + "}不存在。")); } OThinker.H3.DataModel.BizObjectSchema schema = Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode); OThinker.H3.DataModel.BizObject bo = new OThinker.H3.DataModel.BizObject(Engine.Organization, Engine.MetadataRepository, Engine.BizObjectManager, null, schema, user); if (paramValues != null) { // 这里可以在创建流程的时候赋值 foreach (DataItemParam param in paramValues) { if (bo.Schema.GetProperty(param.ItemName).LogicType == OThinker.H3.Data.DataLogicType.BizObjectArray) { var t = new List <OThinker.H3.DataModel.BizObject>(); foreach (List <DataItemParam> list in (IEnumerable)param.ItemValue) { var m = new OThinker.H3.DataModel.BizObject(Engine.Organization, Engine.MetadataRepository, Engine.BizObjectManager, null, schema.Fields.FirstOrDefault(x => x.ChildSchemaCode == param.ItemName).Schema, user); foreach (DataItemParam item in list) { if (m.Schema.ContainsField(item.ItemName)) { m.SetValue(item.ItemName, item.ItemValue); } } t.Add(m); } bo[param.ItemName] = t.ToArray(); } else if (bo.Schema.ContainsField(param.ItemName)) { bo[param.ItemName] = param.ItemValue; } } } bo.Create(); // 创建流程实例 //string InstanceId = this.Engine.InstanceManager.CreateInstance(bo.ObjectID,workflowTemplate.WorkflowCode,workflowTemplate.WorkflowVersion, // null,null,user,null, null, false, OThinker.H3.Instance.InstanceContext.UnspecifiedID,null,OThinker.H3.Instance.Token.UnspecifiedID); string InstanceId = this.Engine.InstanceManager.CreateInstanceByDefault(bo.ObjectID, workflowTemplate.WorkflowCode, null, user); // 设置紧急程度为普通 OThinker.H3.Messages.MessageEmergencyType emergency = OThinker.H3.Messages.MessageEmergencyType.Normal; // 这里也可以在启动流程的时候赋值 Dictionary <string, object> paramTables = new Dictionary <string, object>(); // 启动流程的消息 OThinker.H3.Messages.StartInstanceMessage startInstanceMessage = new OThinker.H3.Messages.StartInstanceMessage(emergency, InstanceId, null, paramTables, OThinker.H3.Instance.PriorityType.Normal, true, null, false, OThinker.H3.Instance.Token.UnspecifiedID, null); Engine.InstanceManager.SendMessage(startInstanceMessage); result = new BPMServiceResult(true, InstanceId, null, "流程实例启动成功!", ""); } catch (Exception ex) { result = new BPMServiceResult(false, "流程实例启动失败!错误:" + ex.Message); } return(result); }
public void UpdateMortgageData() { while (true) { DateTime start = DateTime.Now; //List<DataItemParam> dataList1 = new List<DataItemParam>(); //string sqljy1 = "SELECT * FROM I_MORTGAGE WHERE OBJECTID = '9ff09aa7-3c54-4431-b76e-ae2abb838855'"; //DataTable dtjy1 = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sqljy1); //string sqlzd1 = "SELECT * FROM I_GJPEOPLE WHERE PARENTOBJECTID = '9ff09aa7-3c54-4431-b76e-ae2abb838855'"; //DataTable dtzd1 = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sqlzd1); //dataList1 = GetFlowData(dtjy1,dtzd1); //BPMServiceResult result1 = StartWorkflow("Solutionmortgage", "Administrator", false, dataList1); //return; try { string sqlworkitem = "SELECT * FROM OT_WORKITEM WHERE WORKFLOWCODE = 'Mortgage' AND SHEETCODE = 'MortgageSelf' AND displayName='等待'"; DataTable dtlis = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sqlworkitem); Console.Write("等待数据:" + dtlis.Rows.Count); string workItemId = ""; if (dtlis != null && dtlis.Rows.Count > 0) { for (int i = 0; i < dtlis.Rows.Count; i++) { string InstanceID = dtlis.Rows[i]["INSTANCEID"].ToString(); Console.Write("InstanceID:" + InstanceID); string BIZOBJECTID = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT BIZOBJECTID FROM OT_INSTANCECONTEXT WHERE OBJECTID = '" + InstanceID + "'") + string.Empty; Console.Write("BIZOBJECTID:" + BIZOBJECTID); workItemId = dtlis.Rows[i]["OBJECTID"].ToString(); Console.Write("workItemId:" + workItemId); string sql = "SELECT OBJECTID,APPLYNO,RCHIVINGRESULTS FROM I_MORTGAGE WHERE OBJECTID = '" + BIZOBJECTID + "'"; Console.Write("sql:" + sql); DataTable dt = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sql); Console.Write("查询数据1:" + dt.Rows.Count); if (dt != null && dt.Rows.Count > 0) { for (int k = 0; k < dt.Rows.Count; k++) { string userId = "Administrator", commentText = ""; if (DateTime.Now.Day - Convert.ToDateTime(dtlis.Rows[i]["STARTTIME"]).Day >= 10 && string.IsNullOrEmpty(dt.Rows[k]["RCHIVINGRESULTS"].ToString())) { ReturnItem(userId, workItemId, commentText);//日期超过10天,自动驳回 } else { DataTable dtproducts = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM in_cms.mv_dy_application_date_info@to_dy_cms WHERE 申请号 = '" + dt.Rows[k]["APPLYNO"].ToString() + "'"); //DataTable dtproducts = ExecuteDataTableSql("CAPDB", "SELECT * FROM in_cms.mv_dy_application_date_info WHERE 申请号 = '" + dt.Rows[k]["APPLYNO"].ToString() + "'"); Console.Write("查询数据2:" + dtproducts.Rows.Count); if (dtproducts != null && dtproducts.Rows.Count > 0) { for (int d = 0; d < dtproducts.Rows.Count; d++) { if (dtproducts.Rows[d]["归档时间"] != null && dtproducts.Rows[d]["归档时间"] != DBNull.Value && !string.IsNullOrEmpty(dtproducts.Rows[d]["归档时间"].ToString())) { string updatesql = "UPDATE I_MORTGAGE SET RCHIVINGRESULTS = '" + dtproducts.Rows[d]["归档时间"] + "' WHERE OBJECTID = '" + BIZOBJECTID + "'"; int returnresult = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(updatesql); SubmitItem(workItemId, OThinker.Data.BoolMatchValue.True, commentText, userId); List <DataItemParam> dataList = new List <DataItemParam>(); string sqljy = "SELECT * FROM I_MORTGAGE WHERE OBJECTID = '" + BIZOBJECTID + "'"; DataTable dtjy = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sqljy); string sqlzd = "SELECT * FROM I_GJPEOPLE WHERE PARENTOBJECTID = '" + BIZOBJECTID + "'"; DataTable dtzd = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sqlzd); dataList = GetFlowData(dtjy, dtzd); BPMServiceResult result = StartWorkflow("Solutionmortgage", userId, false, dataList); } } } } } } } } Log.WriteLog(true, "归档成功。", (DateTime.Now - start).TotalSeconds, start); } catch (Exception ex) { Log.WriteLog(true, "归档异常:异常信息:\r\n" + ex.ToString(), (DateTime.Now - start).TotalSeconds, start); } Thread.Sleep(2 * 60 * 60 * 1000); } }
public void Index() { var context = HttpContext; string data = ""; using (StreamReader sr = new StreamReader(context.Request.InputStream)) { data = sr.ReadToEnd(); JObject jtoken = JObject.Parse(data); data = jtoken["data"].ToString(); } AppUtility.Engine.LogWriter.Write("CRM_To_H3接口入网流程数据:" + data); JavaScriptSerializer json = new JavaScriptSerializer(); WorkFlowMethod.Return result = new WorkFlowMethod.Return(); try { List <DataItemParam> dataList = new List <DataItemParam>(); List <string> sqlList = new List <string>(); string objectid = ""; data = DESDecrypt(data, "B^@s(d)+"); AppUtility.Engine.LogWriter.Write("CRM_To_H3接口入网解密数据:" + data); JObject jsonData = JObject.Parse(data); string dealerid = jsonData["third_system_no"].ToString(); objectid = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT OBJECTID FROM I_ALLOWIN WHERE CRMDEALERID='" + jsonData["third_system_no"] + "'") + string.Empty; if (string.IsNullOrEmpty(objectid)) { string dealerType = "", dealerKind = "", crmid = ""; dataList = GetDataItemParam(jsonData, out sqlList, out dealerType, out dealerKind, out crmid, dealerid, objectid); BPMServiceResult resul = StartWorkflow("AllowIn", jsonData["originator"].ToString(), false, dataList); if (resul.Success) { result.Result = "0"; result.Message = resul.Message; foreach (string text in sqlList) { int i = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(text.Replace("[TYPEKIND]", "'" + dealerKind + "','" + dealerType + "','" + crmid + "'")); } } else { result.Result = "-1"; result.Message = resul.Message; } } else { string instanceId = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT OBJECTID FROM OT_INSTANCECONTEXT WHERE BIZOBJECTID = '" + objectid + "'") + string.Empty; string workItemId = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar("SELECT OBJECTID FROM OT_WORKITEM WHERE INSTANCEID = '" + instanceId + "'") + string.Empty; string dealerType = "", dealerKind = "", crmid = ""; dataList = GetDataItemParam(jsonData, out sqlList, out dealerType, out dealerKind, out crmid, dealerid, objectid); BPMServiceResult re = SubmitItem("AllowIn", instanceId, workItemId, (OThinker.Data.BoolMatchValue) 1, "", jsonData["originator"].ToString(), dataList); if (re.Success) { int i = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery("DELETE FROM DEALERDATAARRAY WHERE \"DealerDataObjectID\" IN (SELECT \"ObjectID\" FROM DEALERDATA WHERE \"CrmDealerId\" = '" + dealerid + "')"); int j = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery("DELETE FROM DEALERDATA WHERE \"CrmDealerId\" = '" + dealerid + "'"); foreach (string text in sqlList) { int k = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(text.Replace("[TYPEKIND]", "'" + dealerKind + "','" + dealerType + "','" + crmid + "'")); } result.Result = "0"; result.Message = re.Message; } else { result.Result = "-1"; result.Message = re.Message; } } } catch (Exception e) { result.Result = "-1"; result.Message = e.Message; } context.Response.Write(json.Serialize(result)); }
/// <summary> /// 启动H3流程实例(包含子表) /// </summary> /// <typeparam name="T">实体类-泛型</typeparam> /// <param name="workflowCode">流程模板编码</param> /// <param name="userCode">启动流程的用户编码</param> /// <param name="finishStart">是否结束第一个活动</param> /// <param name="EntityParamValues">流程实例启动初始化数据项实体类集合</param> /// <returns></returns> private BPMServiceResult startWorkflowByEntityTrinsJson( string workflowCode, string userCode, bool finishStart, object EntityParamValues) { string workItemID, keyItem, errorMessage; workItemID = keyItem = errorMessage = string.Empty; BPMServiceResult result; try { // 获取模板 OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader workflowTemplate = GetWorkflowTemplate(workflowCode); if (workflowTemplate == null) { result = new BPMServiceResult(false, "流程启动失败,流程模板不存在,模板编码:" + workflowCode + "。"); return(result); } // 查找流程发起人 //OThinker.Organization.User user = OThinker.H3.Controllers.AppUtility.Engine.Organization.GetUserByCode(userCode) as OThinker.Organization.User; string user = "******";// GetUserIDByCode(userCode); //"18f923a7-5a5e-426d-94ae-a55ad1a4b239"; // if (user == null) { result = new BPMServiceResult(false, "流程启动失败,用户{" + userCode + "}不存在。"); return(result); } OThinker.H3.DataModel.BizObjectSchema schema = OThinker.H3.Controllers.AppUtility.Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode); OThinker.H3.DataModel.BizObject bo = new OThinker.H3.DataModel.BizObject( OThinker.H3.Controllers.AppUtility.Engine.Organization, OThinker.H3.Controllers.AppUtility.Engine.MetadataRepository, OThinker.H3.Controllers.AppUtility.Engine.BizObjectManager, OThinker.H3.Controllers.AppUtility.Engine.BizBus, schema, OThinker.Organization.User.AdministratorID, OThinker.Organization.OrganizationUnit.DefaultRootID); if (EntityParamValues != null) { Newtonsoft.Json.Linq.JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(EntityParamValues.ToString()); foreach (KeyValuePair <string, Newtonsoft.Json.Linq.JToken> jo in jObject) { //如果字段是GTAttachment则是附件 if (bo.Schema.ContainsField(jo.Key)) { if (bo.Schema.GetLogicType(jo.Key) == OThinker.H3.Data.DataLogicType.Comment) { continue; } //判断是否子表 else if (bo.Schema.GetLogicType(jo.Key) != OThinker.H3.Data.DataLogicType.BizObjectArray) { //给对象赋值 bo[jo.Key] = jo.Value; } else { List <object> list = JSSerializer.Deserialize <List <object> >(Newtonsoft.Json.JsonConvert.SerializeObject(jo.Value) as string); //获取子表的属性 BizObjectSchema childSchema = schema.GetProperty(jo.Key).ChildSchema; BizObject[] bizObjects = new BizObject[list.Count]; int i = 0; foreach (object objT in list) { bizObjects[i] = new BizObject(OThinker.H3.Controllers.AppUtility.Engine, childSchema, userCode); foreach (KeyValuePair <string, object> t in (dynamic)objT) { if (childSchema.ContainsField(t.Key)) { //给对象赋值 bizObjects[i][t.Key] = t.Value; continue; } } i++; } //子表回写给流程子表 bo[jo.Key] = bizObjects; } } } } bo.Create(); // 创建流程实例 string InstanceId = OThinker.H3.Controllers.AppUtility.Engine.InstanceManager.CreateInstance( bo.ObjectID, workflowTemplate.WorkflowCode, workflowTemplate.WorkflowVersion, null, null, user, null, false, OThinker.H3.Instance.InstanceContext.UnspecifiedID, null, OThinker.H3.Instance.Token.UnspecifiedID); // 设置紧急程度为普通 OThinker.H3.Messages.MessageEmergencyType emergency = OThinker.H3.Messages.MessageEmergencyType.Normal; // 这里也可以在启动流程的时候赋值 Dictionary <string, object> paramTables = new Dictionary <string, object>(); // 启动流程的消息 OThinker.H3.Messages.StartInstanceMessage startInstanceMessage = new OThinker.H3.Messages.StartInstanceMessage( emergency, InstanceId, workItemID, paramTables, OThinker.H3.Instance.PriorityType.Normal, true, null, false, OThinker.H3.Instance.Token.UnspecifiedID, null); OThinker.H3.Controllers.AppUtility.Engine.InstanceManager.SendMessage(startInstanceMessage); result = new BPMServiceResult(true, InstanceId, workItemID, "流程实例启动成功!", ""); } catch (Exception ex) { result = new BPMServiceResult(false, "流程实例启动失败!错误:" + ex + string.Empty); } return(result); }
public void Index() { var context = HttpContext; string data = ""; using (StreamReader sr = new StreamReader(context.Request.InputStream)) { data = sr.ReadToEnd(); JObject jtoken = JObject.Parse(data); data = jtoken["data"].ToString(); } AppUtility.Engine.LogWriter.Write("CRM_To_H3接口升降机流程数据:" + data); JavaScriptSerializer json = new JavaScriptSerializer(); WorkFlowMethod.Return result = new WorkFlowMethod.Return(); try { List <DataItemParam> datalist = new List <DataItemParam>(); //data = "E99C2DDDCA89444C64102DD9AB6A7CD99D73DDAAB7C174C19859B613653E5B03F933447C9682F656CFE7E3B38454BE98759EE1BBBF00AE67728F14B76B9C53C53DE16AF0CB4AC98C143BCC29022376AE979300301E5793AA8DB402584089EF0FDA33A90A31CB18BEC19BD6662D6C9D81CA0CF189B4D2AC583B26BA14AC0429482FFCC1D05149541728B69DD17277DD067317B52A5EAB7D78AC3CD57DCEBA2ACCE5FEC74536BA6E94823CD194B44F43F05826F3EF1BB049F70A42783829C539C55BDA9F5A19A242E2C579D96BD1D33E55B63E884CF5630D85EF87D03CC861867C5F4198BCDEBCF772DC8F9EBFF84BE4C88E33829EC379CFCB02D4EF2CB79CAC7E20C0CF7760F26BBEF7B670489B8598994E9404F21854669E13486354B647690527B23450B88148D6782DC374B97BE7B1A9E58ACAADFFE9168A547850087B839F1793853A616B01FB7ADBB20F6CF2D00CE7E1333EC620B1F4DF69DB16DC86BA7B768B65C5BDA0456556BBF08D98551A8F1F20548421C75BDE6AB9DF3068039333FF1393DEF1622CE397E26687623C87A7827DF192789537C96098ACE89CA21F754DDE94F9742C6E9AD6BF8723264816CB74C1CEFF6F285132C5FBB58C6B9052B811A36DC5306A7942F89D201D1BD6BA1956A704BEF076330614C8FA14EA1480420C0F455F133D5853BEC970B4AC583B81"; data = DESDecrypt(data, "B^@s(d)+"); AppUtility.Engine.LogWriter.Write("CRM_To_H3接口升降机解密数据:" + data); JObject jsonData = JObject.Parse(data); datalist.Add(new DataItemParam { ItemName = "Dealer", ItemValue = jsonData["distributor"].ToString() }); datalist.Add(new DataItemParam { ItemName = "DealerClass", ItemValue = jsonData["distributortype"].ToString() }); datalist.Add(new DataItemParam { ItemName = "CrmDealerId", ItemValue = jsonData["third_system_no"].ToString() }); //datalist.Add(new DataItemParam { ItemName = "originator", ItemValue = jsonData["originator"].ToString() }); datalist.Add(new DataItemParam { ItemName = "TargetLine", ItemValue = jsonData["targetquota"].ToString() }); //datalist.Add(new DataItemParam { ItemName = "currentQuota", ItemValue = jsonData["currentquota"].ToString() }); datalist.Add(new DataItemParam { ItemName = "TargetMargin", ItemValue = jsonData["targetbail"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Relegation", ItemValue = jsonData["levelchangetype"].ToString() == "1" ? "升级" : "降级" }); datalist.Add(new DataItemParam { ItemName = "Remark", ItemValue = jsonData["modifycontent"].ToString() }); string sql = "SELECT DISTRIBUTOR,TYPE,DISTRIBUTORTYPE,PROVINCE,CITY,COMPANYADDR,BELONGTO,BRAND,QYWYKT,LOANTYPE,MEMO,LICENSE,ENTERPRISEREGISTRATION,ZHTIME," + " REGISTRATIONDATE,CREATDATE,LEGALREPRESENTATIVE,CORPORATEIDENTITYCARD,REGISTEREDCAPITAL,BANKBRANCH,ACCOUNTTYPE,BANKNAME,BANKACCOUNT,COUPLETNUMBER " + " FROM I_ALLOWIN WHERE CRMDEALERID='" + jsonData["third_system_no"].ToString() + "'"; System.Data.DataTable table = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(sql); if (table != null && table.Rows.Count > 0) { datalist.Add(new DataItemParam { ItemName = "Channels", ItemValue = table.Rows[0]["TYPE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Province", ItemValue = table.Rows[0]["PROVINCE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "City", ItemValue = table.Rows[0]["CITY"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Address", ItemValue = table.Rows[0]["COMPANYADDR"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Company", ItemValue = table.Rows[0]["BELONGTO"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Brand", ItemValue = table.Rows[0]["BRAND"].ToString() }); datalist.Add(new DataItemParam { ItemName = "NetSilver", ItemValue = table.Rows[0]["QYWYKT"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Loan", ItemValue = table.Rows[0]["LOANTYPE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Memo", ItemValue = table.Rows[0]["MEMO"].ToString() }); datalist.Add(new DataItemParam { ItemName = "License", ItemValue = table.Rows[0]["LICENSE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Register", ItemValue = table.Rows[0]["ENTERPRISEREGISTRATION"].ToString() }); datalist.Add(new DataItemParam { ItemName = "RegisterDate", ItemValue = table.Rows[0]["REGISTRATIONDATE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "OriginateDate", ItemValue = table.Rows[0]["CREATDATE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Representative", ItemValue = table.Rows[0]["LEGALREPRESENTATIVE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Card", ItemValue = table.Rows[0]["CORPORATEIDENTITYCARD"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Capital", ItemValue = table.Rows[0]["REGISTEREDCAPITAL"].ToString() }); datalist.Add(new DataItemParam { ItemName = "OpenBank", ItemValue = table.Rows[0]["BANKBRANCH"].ToString() }); datalist.Add(new DataItemParam { ItemName = "AccountType", ItemValue = table.Rows[0]["ACCOUNTTYPE"].ToString() }); datalist.Add(new DataItemParam { ItemName = "AccountName", ItemValue = table.Rows[0]["BANKNAME"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Account", ItemValue = table.Rows[0]["BANKACCOUNT"].ToString() }); datalist.Add(new DataItemParam { ItemName = "Couplet", ItemValue = table.Rows[0]["COUPLETNUMBER"].ToString() }); datalist.Add(new DataItemParam { ItemName = "OpenDate", ItemValue = table.Rows[0]["ZHTime"].ToString() }); BPMServiceResult bpmresult = StartWorkFlow("Relegation", jsonData["originator"].ToString(), false, datalist); //"*****@*****.**" jsonData["originator"].ToString() "28f5d358-68fa-4d9c-982d-281ed216bd36" if (bpmresult.Success) { result.Result = "0"; result.Message = result.Message; } else { result.Result = "-1"; result.Message = result.Message; } } else { result.Result = "-1"; result.Message = "未找到经销商信息"; } } catch (Exception e) { result.Result = "-1"; result.Message = e.Message; } context.Response.Write(json.Serialize(result)); }
public void Index() { var context = HttpContext; context.Response.ContentType = "text/plain"; string data = ""; using (StreamReader sr = new StreamReader(context.Request.InputStream)) { data = sr.ReadToEnd(); JObject jtoken = JObject.Parse(data); data = jtoken["data"].ToString(); } AppUtility.Engine.LogWriter.Write("CRM_To_H3接口预警流程数据:" + data); JavaScriptSerializer json = new JavaScriptSerializer(); WorkFlowMethod.Return result = new WorkFlowMethod.Return(); try { data = DESDecrypt(data, "B^@s(d)+"); AppUtility.Engine.LogWriter.Write("CRM_To_H3接口预警解密数据:" + data); JObject jsonData = JObject.Parse(data); List <DataItemParam> dataList = new List <DataItemParam>(); dataList.Add(new DataItemParam { ItemName = "CrmDealerId", ItemValue = jsonData["third_system_no"].ToString() }); dataList.Add(new DataItemParam { ItemName = "WarningInfo", ItemValue = (LetterEnum)Convert.ToInt32(jsonData["warningtype"].ToString()) }); dataList.Add(new DataItemParam { ItemName = "Reason", ItemValue = jsonData["warningcontent"].ToString() }); DataTable dealer = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable("SELECT * FROM I_AllowIn WHERE CRMDEALERID='" + jsonData["third_system_no"] + "'"); if (dealer != null && dealer.Rows.Count > 0) { dataList.Add(new DataItemParam { ItemName = "Dealer", ItemValue = dealer.Rows[0]["Distributor"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Grade", ItemValue = dealer.Rows[0]["ZScore"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Channels", ItemValue = dealer.Rows[0]["Type"].ToString() }); dataList.Add(new DataItemParam { ItemName = "DealerClass", ItemValue = dealer.Rows[0]["DistributorType"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Province", ItemValue = dealer.Rows[0]["Province"].ToString() }); dataList.Add(new DataItemParam { ItemName = "City", ItemValue = dealer.Rows[0]["City"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Address", ItemValue = dealer.Rows[0]["CompanyAddr"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Company", ItemValue = dealer.Rows[0]["BelongTo"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Brand", ItemValue = dealer.Rows[0]["Brand"].ToString() }); dataList.Add(new DataItemParam { ItemName = "NetSilver", ItemValue = dealer.Rows[0]["QYWYKT"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Loan", ItemValue = dealer.Rows[0]["LoanType"].ToString() }); dataList.Add(new DataItemParam { ItemName = "OpenDate", ItemValue = dealer.Rows[0]["ZHTime"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Memo", ItemValue = dealer.Rows[0]["Memo"].ToString() }); dataList.Add(new DataItemParam { ItemName = "License", ItemValue = dealer.Rows[0]["License"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Register", ItemValue = dealer.Rows[0]["EnterpriseRegistration"].ToString() }); dataList.Add(new DataItemParam { ItemName = "RegisterDate", ItemValue = dealer.Rows[0]["RegistrationDate"].ToString() }); dataList.Add(new DataItemParam { ItemName = "OriginateDate", ItemValue = dealer.Rows[0]["CreatDate"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Representative", ItemValue = dealer.Rows[0]["LegalRepresentative"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Card", ItemValue = dealer.Rows[0]["CorporateIdentityCard"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Capital", ItemValue = dealer.Rows[0]["RegisteredCapital"].ToString() }); dataList.Add(new DataItemParam { ItemName = "OpenBank", ItemValue = dealer.Rows[0]["BankBranch"].ToString() }); dataList.Add(new DataItemParam { ItemName = "AccountType", ItemValue = dealer.Rows[0]["AccountType"].ToString() }); dataList.Add(new DataItemParam { ItemName = "AccountName", ItemValue = dealer.Rows[0]["BankName"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Account", ItemValue = dealer.Rows[0]["BankAccount"].ToString() }); dataList.Add(new DataItemParam { ItemName = "Couplet", ItemValue = dealer.Rows[0]["CoupletNumber"].ToString() }); BPMServiceResult resul = StartWorkflow("Prewaring", jsonData["originator"].ToString(), false, dataList); if (resul.Success) { result.Result = "0"; result.Message = resul.Message; } else { result.Result = "-1"; result.Message = resul.Message; } } else { result.Result = "-1"; result.Message = "未找到经销商信息"; } } catch (Exception e) { result.Result = "-1"; result.Message = e.Message; } context.Response.Write(json.Serialize(result)); }