/// <summary> /// 自动完成 /// </summary> public static WORKFLOW_PROCESS_PATH AutoCompleteActivityByParam(string id, string tableName, string lineName = "agree") { string url = ConfigurationManager.AppSettings["ArasUrl"]; string dbName = ConfigurationManager.AppSettings["ArasDB"]; string accountName = ConfigurationManager.AppSettings["Administrator"]; string password = ConfigurationManager.AppSettings["ArasPassword"]; //使用管理员帐号登陆 HttpServerConnection conn = IomFactory.CreateHttpServerConnection(url, dbName, accountName, password); Item login_result = conn.Login(); if (!login_result.isError()) { var inn = login_result.getInnovator(); Item activityItem = ActivityDA.GetActivityByItemId(inn, id, "Administrators", tableName); if (!activityItem.isError()) { string activityId = activityItem.getProperty("activityid"); string activityAssignmentId = activityItem.getProperty("activityassignmentid"); //任务路线 var listActivity = WorkflowProcessPathDA.GetWorkflowProcessPathByActivityId(activityId); WORKFLOW_PROCESS_PATH choicePath = listActivity.Where(x => x.NAME == lineName).FirstOrDefault(); //替换符 ReplaceChars(choicePath); string errorStr = ActivityDA.CompleteActivity(inn, activityId, activityAssignmentId, choicePath.ID, choicePath.NAME, "", "AutoComplete"); if (string.IsNullOrEmpty(errorStr)) { return(choicePath); } } } return(null); }
/// <summary> /// 保存转办 /// </summary> /// <returns></returns> public JsonResult SaveWorkflowTurnToDo(CompleteActivityModel model) { var retModel = new JsonReturnModel(); try { var user = UserDA.GetUserByFirstName(model.delegateToName); if (user == null) { retModel.AddError("errorMessage", "选择的转办不存在!"); return(Json(retModel, JsonRequestBehavior.AllowGet)); } if (model.delegateToName == Userinfo.UserName) { retModel.AddError("errorMessage", "转办人不能选择自己!"); return(Json(retModel, JsonRequestBehavior.AllowGet)); } IDENTITY dentity = IdentityDA.GetIdentityByActivityAssignmentId(model.activityAssignmentId); string identityName = dentity.KEYED_NAME; if (identityName.Trim() != Userinfo.UserName) { retModel.AddError("errorMessage", "代理权限不能进行转办!"); return(Json(retModel, JsonRequestBehavior.AllowGet)); } string errorString = ActivityDA.CompleteActivity(inn, model.activityId, model.activityAssignmentId, "", "Delegate", model.delegateToName, Userinfo.UserName + "转办到:" + model.delegateToName, Userinfo); if (string.IsNullOrEmpty(errorString)) { WorkFlowBll.TurnToDoSendEmail(Userinfo.UserName, model.delegateToName, model.recordNo, model.linkStr, user.EMAIL); } } catch (Exception ex) { retModel.AddError("errorMessage", ex.Message); } return(Json(retModel, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 完成任务 /// </summary> /// <param name="model"></param> /// <returns></returns> public JsonResult CompleteActivity(CompleteActivityModel model) { var retModel = new JsonReturnModel(); try { WORKFLOW_PROCESS_PATH path = new WORKFLOW_PROCESS_PATH(); Item itemPrManage = inn.newItem("B_PRMANAGE", "get"); itemPrManage.setAttribute("id", model.itemId); itemPrManage = itemPrManage.apply(); string prRecordNo = itemPrManage.getProperty("b_prrecordno"); string b_BusinessDepartment = itemPrManage.getProperty("b_businessdepartment"); string b_Applicant = itemPrManage.getProperty("b_applicant"); if (string.IsNullOrEmpty(model.comments)) { retModel.AddError("errorMessage", @OABordrinCommon.Common.GetLanguageValueByParam("退回必须填写备注!", "ERCommon", "ERItemType", ViewBag.language)); return(Json(retModel, JsonRequestBehavior.AllowGet)); } //获取当前退回人员权重 var ActivityAssignmentItem = ActivityAssignmentDA.GetActivityAssignmentById(inn, model.activityAssignmentId); if (!ActivityAssignmentItem.isError() && ActivityAssignmentItem.getItemCount() > 0) { int voting_weight = int.Parse(ActivityAssignmentItem.getItemByIndex(0).getProperty("voting_weight")); //修改权重 if (voting_weight < 100) { //获取Admin的Aras 连接 var adminInn = WorkFlowBll.GetAdminInnovator(); if (adminInn != null) { //获取Admin 对当前任务权限数据 Item activityItem = ActivityDA.GetActivityByItemId(adminInn, model.itemId, "Administrators", "B_PrManage"); if (!activityItem.isError()) { string activityId = activityItem.getProperty("activityid"); string activityAssignmentId = activityItem.getProperty("activityassignmentid"); ActivityDA.CompleteActivity(adminInn, activityId, activityAssignmentId, model.pathId, "", "", Userinfo.UserName + "对单据进行了退回操作! 备注:" + model.comments); } } } else { string result = ActivityDA.CompleteActivity(inn, model.activityId, model.activityAssignmentId, model.pathId, "", "", model.comments); if (!string.IsNullOrEmpty(result)) { retModel.AddError("errorMessage", result); return(Json(retModel, JsonRequestBehavior.AllowGet)); } } } path = WorkflowProcessPathDA.GetWorkflowProcessPathById(model.pathId); PrManageBll.SendEmailByOperation(inn, prRecordNo, b_Applicant, "", path, model.itemId); string b_remark = PrManageBll.AddRemark(inn, model.comments, model.itemId, Userinfo.UserName); var itemRoot = inn.newItem("B_PRMANAGE", "edit"); itemRoot.setAttribute("id", model.itemId); itemRoot.setProperty("b_remark", b_remark); itemRoot = itemRoot.apply(); } catch (Exception ex) { retModel.AddError("errorMessage", ex.Message); } return(Json(retModel, JsonRequestBehavior.AllowGet)); }