/// <summary> /// 获取预发起FormMode /// </summary> /// <param name="formInput"></param> /// <param name="k2Id"></param> /// <param name="userName"></param> /// <returns></returns> private KStarFormModel GetPreStartupData(KStarFormInput formInput, string k2Id, string userName) { var proStartLogInfo = _bpmInterfaceLogService.GetProStartInterfaceLog(k2Id);//根据K2ID获取流程发起日志信息 #region 权限检查 K2ID是否已经提交 if (proStartLogInfo == null) { //您没有权限打开此表单 throw new KStarCustomException(KStarForm_Prompt.NoOpenFormAuthority); } var formInstance = _kStarFormStorageService.GetPrcServer_FormInstanceByFolio(k2Id); if (formInstance != null) { //如果已经存在表单,返回查看页面数据 formInput.FormId = formInstance.Id; return(_kStarWorkFlowService.GetKStarFormByView(formInput)); ////表单状态为已提交,请勿重复提交! //throw new KStarCustomException(KStarForm_Prompt.FormIDRepeatSubmit); } #endregion var requestMessage = proStartLogInfo.RequestMessage; var proStartData = JsonConvert.DeserializeObject <RequstModel <ProcessStartArgs> >(requestMessage); var proStartInfo = proStartData.requestInfo; var model = _kStarWorkFlowService.GetApiSubmitModel(userName, proStartInfo.applyUserCode, proStartLogInfo.SplitProcessCode, "BPMService", Guid.Empty); model.FormInstance.Folio = k2Id; //更新流程编码 model.FormInstance.BizId = proStartLogInfo.BizID; //更新BizId model.FormInstance.FormSubject = proStartInfo.folio; //流程标题 model.KStarFormButtons = model.KStarFormButtons.Where(t => t.Code != "SaveDraft").ToList(); // 过虑保存草稿按钮 model.FormContent.FormDataToJson = proStartInfo.bizData; //流程表单数据 return(model); }
public virtual JsonResult GetFormData(QueryMode queryMode) { if (queryMode.ProcessCode == "null") { queryMode.ProcessCode = null; } if (queryMode.SharedUser == "null") { queryMode.SharedUser = null; } var workMode = this.GetWorkMode(queryMode); #region formInput var formInput = new KStarFormInput(); //formInput.UserName = CurrentUser.UserAccount;//Startup formInput.UserName = !string.IsNullOrEmpty(queryMode.UserAccount) ? queryMode.UserAccount : CurrentUser?.UserAccount; formInput.ProcessCode = queryMode.ProcessCode;//Startup formInput.Url = queryMode.Url; formInput.SN = queryMode.SN; formInput.WorkItemId = queryMode.WorkId; formInput.FormId = queryMode.FormId; formInput.SharedUser = queryMode.SharedUser; formInput.CcId = queryMode.CcId; formInput.Token = queryMode.token; #endregion var model = kStarFormHandleService.GetFormData(queryMode, formInput, workMode, CurrentUser?.UserAccount); return(Json(model, JsonRequestBehavior.AllowGet)); }
public virtual KStarFormModel GetFormData(QueryMode queryMode, KStarFormInput formInput, WorkMode workMode, string userName) { var model = new KStarFormModel(); switch (workMode) { //查看、 case WorkMode.View: formInput.FormId = queryMode.FormId; model = _kStarWorkFlowService.GetKStarFormByView(formInput); break; case WorkMode.Draft: if (queryMode.DraftId > 0) { formInput.FormId = queryMode.DraftId; } model = _kStarWorkFlowService.GetKStarFormByDraft(formInput); break; case WorkMode.Approval: model = _kStarWorkFlowService.GetKStarFormByApproval(formInput); break; case WorkMode.Startup: formInput.UserName = userName; if (formInput.ProcessCode == KStar.Platform.Infrastructure.SystemSettings.KStarFormPreview) { model = _kStarWorkFlowService.GetKStarFormPreviewKStarFormModel(formInput.UserName, formInput.ProcessCode); } else { model = _kStarWorkFlowService.GetKStarFormByApplication(formInput); } break; case WorkMode.PreStartup: model = GetPreStartupData(formInput, queryMode.K2Id, userName); break; } return(model); }