Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
        }