コード例 #1
0
        public ActionResult CreateProcess(string wfSchemeInfoId, string wfProcessInstanceJson, string frmData)
        {
            WFProcessInstanceEntity wfProcessInstanceEntity = wfProcessInstanceJson.ToObject <WFProcessInstanceEntity>();

            wfProcessBll.CreateProcess(wfSchemeInfoId, wfProcessInstanceEntity, frmData);
            string text = "创建成功";

            if (wfProcessInstanceEntity.EnabledMark != 1)
            {
                text = "草稿保存成功";
            }
            return(Success(text));
        }
コード例 #2
0
 /// <summary>
 /// 流程指派
 /// </summary>
 /// <param name="processId"></param>
 /// <param name="makeLists"></param>
 public void DesignateProcess(string processId, string makeLists)
 {
     try
     {
         WFProcessInstanceEntity entity = new WFProcessInstanceEntity();
         entity.Id        = processId;
         entity.MakerList = makeLists;
         this.BaseRepository().Update(entity);
     }
     catch {
         throw;
     }
 }
コード例 #3
0
        public ActionResult EditionRoughdraftProcess(string keyValue, string wfProcessInstanceJson, string frmData)
        {
            WFProcessInstanceEntity wfProcessInstanceEntity = wfProcessInstanceJson.ToObject <WFProcessInstanceEntity>();

            wfProcessBll.EditionRoughdraftProcess(keyValue, wfProcessInstanceEntity, frmData);
            string text = "创建成功";

            if (wfProcessInstanceEntity.EnabledMark != 1)
            {
                text = "草稿保存成功";
            }
            return(Success(text));
        }
コード例 #4
0
        public ActionResult CreateProcess(string wfSchemeInfoId, string wfProcessInstanceJson, string frmData)
        {
            var user = OperatorProvider.Provider.Current();
            WFProcessInstanceEntity wfProcessInstanceEntity = wfProcessInstanceJson.ToObject <WFProcessInstanceEntity>();

            wfProcessBll.CreateProcess(user.UserId, user.UserName, wfSchemeInfoId, wfProcessInstanceEntity, frmData);
            string text = "创建成功";

            if (wfProcessInstanceEntity.EnabledMark != 1)
            {
                text = "草稿保存成功";
            }
            return(Success(text));
        }
コード例 #5
0
        public ActionResult EditionRoughdraftProcess(string keyValue, string wfProcessInstanceJson, string frmData)
        {
            var user = OperatorProvider.Provider.Current();

            WFProcessInstanceEntity wfProcessInstanceEntity = wfProcessInstanceJson.ToObject <WFProcessInstanceEntity>();

            wfProcessBll.EditionRoughdraftProcess(user.UserId, user.UserName, keyValue, wfProcessInstanceEntity, frmData);
            string text = "创建成功";

            if (wfProcessInstanceEntity.EnabledMark != 1)
            {
                text = "草稿保存成功";
            }
            return(Success(text));
        }
コード例 #6
0
 /// <summary>
 /// 虚拟操作实例
 /// </summary>
 /// <param name="keyValue"></param>
 /// <param name="state">0暂停,1启用,2取消(召回)</param>
 /// <returns></returns>
 public int OperateVirtualProcess(string keyValue,int state)
 {
     IRepository db = this.BaseRepository().BeginTrans();
     try
     {
         WFProcessInstanceEntity entity = this.BaseRepository().FindEntity<WFProcessInstanceEntity>(keyValue);
         
         // 流程是否完成(0运行中,1运行结束,2被召回,3不同意,4表示被驳回)
         string content = "";
         switch (state)
         {
             case 0:
                 if (entity.F_EnabledMark == 0)
                 {
                     return 1;
                 }
                 entity.F_EnabledMark = 0;
                 content = "【暂停】" + OperatorProvider.Provider.Current().UserName + "暂停了一个流程进程【" + entity.F_Code + "/" + entity.F_Name + "】";
                 break;
             case 1:
                 if (entity.F_EnabledMark == 1)
                 {
                     return 1;
                 }
                 entity.F_EnabledMark = 1;
                 content = "【启用】" + OperatorProvider.Provider.Current().UserName + "启用了一个流程进程【" + entity.F_Code + "/" + entity.F_Name + "】";
                 break;
             case 2:
                 entity.F_EnabledMark = 2;
                 content = "【召回】" + OperatorProvider.Provider.Current().UserName + "召回了一个流程进程【" + entity.F_Code + "/" + entity.F_Name + "】";
                 break;
         }
         db.Update<WFProcessInstanceEntity>(entity);
         WFProcessOperationHistoryEntity processOperationHistoryEntity = new WFProcessOperationHistoryEntity();
         processOperationHistoryEntity.F_Type = 4;
         processOperationHistoryEntity.Create();
         processOperationHistoryEntity.F_ProcessId = entity.F_Id;
         processOperationHistoryEntity.F_Content = content;
         db.Insert(processOperationHistoryEntity);
         db.Commit();
         return 1;
     }
     catch
     {
         db.Rollback();
         throw;
     }
 }
コード例 #7
0
        public ActionResult GetProcessJson(string keyValue)
        {
            WFProcessInstanceEntity processEntity       = wfProcessBll.GetProcessEntity(keyValue);
            WFProcessSchemeEntity   processSchemeEntity = wfProcessBll.GetProcessSchemeEntity(processEntity.F_ProcessSchemeId);
            var nodeList = wfProcessBll.GetProcessNodeList(keyValue).ToList();

            nodeList = nodeList.OrderBy(t => t.F_NodeId).ThenBy(t => t.F_CreateDate).ToList();
            var dataJson = new
            {
                processEntity       = processEntity,
                processSchemeEntity = processSchemeEntity,
                nodeList            = nodeList
            };

            return(Content(dataJson.ToJson()));
        }
コード例 #8
0
 /// <summary>
 /// 删除工作流实例进程(删除草稿使用)
 /// </summary>
 /// <param name="keyValue">主键</param>
 /// <returns></returns>
 public int DeleteProcess(string keyValue)
 {
     IRepository db = this.BaseRepository().BeginTrans();
     try
     {
         WFProcessInstanceEntity entity = this.BaseRepository().FindEntity<WFProcessInstanceEntity>(keyValue);
         db.Delete<WFProcessSchemeEntity>(entity.F_ProcessSchemeId);
         db.Delete<WFProcessInstanceEntity>(keyValue);
         db.Commit();
         return 1;
     }
     catch {
         db.Rollback();
         throw;
     }
 }
コード例 #9
0
ファイル: WFRuntimeBLL.cs プロジェクト: ZzzJimmy/-
 /// <summary>
 /// 编辑草稿实例
 /// </summary>
 /// <param name="keyVlaue">实例信息Id(主键)</param>
 /// <param name="frmData">表单数据</param>
 /// <returns></returns>
 public int EditionRoughdraftProcess(string keyVlaue, WFProcessInstanceEntity wfProcessInstanceEntity, string frmData)
 {
     try {
         wfProcessInstanceEntity.Id = keyVlaue;
         if (wfProcessInstanceEntity.EnabledMark == 1)
         {
             wfRuntimeService.CreateInstance(wfProcessInstanceEntity, frmData);
         }
         else if (wfProcessInstanceEntity.EnabledMark == 3)//继续保存为草稿
         {
             wfRuntimeService.EditionRoughdraft(wfProcessInstanceEntity, frmData);
         }
         return(1);
     }
     catch {
         throw;
     }
 }
コード例 #10
0
        /// <summary>
        ///  更新流程实例 审核节点用
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="dbbaseId"></param>
        /// <param name="processInstanceEntity"></param>
        /// <param name="processSchemeEntity"></param>
        /// <param name="processOperationHistoryEntity"></param>
        /// <param name="delegateRecordEntityList"></param>
        /// <param name="processTransitionHistoryEntity"></param>
        /// <returns></returns>
        public int SaveProcess(string sql, string dbbaseId, WFProcessInstanceEntity processInstanceEntity, WFProcessSchemeEntity processSchemeEntity, WFProcessOperationHistoryEntity processOperationHistoryEntity, List <WFDelegateRecordEntity> delegateRecordEntityList, WFProcessTransitionHistoryEntity processTransitionHistoryEntity = null)
        {
            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                processInstanceEntity.Modify(processInstanceEntity.Id);
                db.Update(processSchemeEntity);
                db.Update(processInstanceEntity);

                processOperationHistoryEntity.Create();
                processOperationHistoryEntity.ProcessId = processInstanceEntity.Id;
                db.Insert(processOperationHistoryEntity);

                if (processTransitionHistoryEntity != null)
                {
                    processTransitionHistoryEntity.Create();
                    processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id;
                    db.Insert(processTransitionHistoryEntity);
                }
                if (delegateRecordEntityList != null)
                {
                    foreach (var item in delegateRecordEntityList)
                    {
                        item.Create();
                        item.ProcessId = processInstanceEntity.Id;
                        db.Insert(item);
                    }
                }
                //if (!string.IsNullOrEmpty(dbbaseId) && !string.IsNullOrEmpty(sql))//测试环境不允许执行sql语句
                //{
                //    DataBaseLinkEntity dataBaseLinkEntity = dataBaseLinkService.GetEntity(dbbaseId);//获取
                //    this.BaseRepository(dataBaseLinkEntity.DbConnection).ExecuteBySql(sql.Replace("{0}", processInstanceEntity.Id));
                //}
                db.Commit();
                return(1);
            }
            catch
            {
                db.Rollback();
                throw;
            }
        }
コード例 #11
0
ファイル: WFRuntimeBLL.cs プロジェクト: ZzzJimmy/-
 /// <summary>
 /// 创建实例
 /// </summary>
 /// <param name="WFSchemeInfoId">流程模板表Id</param>
 /// <param name="Data">表单数据</param>
 /// <param name="Type">1正常,3草稿</param>
 /// <returns></returns>
 public int CreateProcess(string wfSchemeInfoId, WFProcessInstanceEntity wfProcessInstanceEntity, string frmData)
 {
     try
     {
         if (wfProcessInstanceEntity.EnabledMark == 1)//发起流程
         {
             wfRuntimeService.CreateInstance(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
         }
         else if (wfProcessInstanceEntity.EnabledMark == 3)//草稿
         {
             wfRuntimeService.CreateRoughdraft(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
         }
         return(1);
     }
     catch
     {
         throw;
     }
 }
コード例 #12
0
        public ActionResult GetProcessNodeJson(string keyValue)
        {
            WFProcessInstanceEntity processEntity       = wfProcessBll.GetProcessEntity(keyValue);
            WFProcessSchemeEntity   processSchemeEntity = wfProcessBll.GetProcessSchemeEntity(processEntity.F_ProcessSchemeId);
            var         nodeList  = wfProcessBll.GetProcessNodeList(keyValue);
            IWfRuntime  wfRuntime = new WfRuntime(processSchemeEntity.F_SchemeContent);
            WFNodeModel node      = wfRuntime.getStartNode();
            Dictionary <string, FormModuleEntity> formDataLsit = new Dictionary <string, FormModuleEntity>();

            FormModuleEntity formNewEntity = formModuleBLL.GetEntity(node.setInfo.nodeForm);

            formDataLsit.Add(node.setInfo.nodeForm, formNewEntity);
            List <FormModuleEntity> formEntityList = new List <FormModuleEntity>();
            Dictionary <string, FormModuleInstanceEntity> dFormData = new Dictionary <string, FormModuleInstanceEntity>();
            var formdata = formModuleBLL.GetInstanceList(keyValue);

            foreach (var item in formdata)
            {
                Form_ModuleContentEntity formEntity = formModuleBLL.GetFormContentEntity(item.F_FrmContentId);
                if (formDataLsit.ContainsKey(formEntity.F_FrmId) && !dFormData.ContainsKey(formEntity.F_FrmId))
                {
                    formDataLsit[formEntity.F_FrmId].F_FrmContent = formEntity.F_FrmContent;
                    formEntityList.Add(formDataLsit[formEntity.F_FrmId]);
                    dFormData.Add(formEntity.F_FrmId, item);
                }
            }
            if (formEntityList.Count == 0)
            {
                formEntityList.Add(formNewEntity);
            }
            var dataJson = new
            {
                processEntity       = processEntity,
                processSchemeEntity = processSchemeEntity,
                nodeList            = nodeList,
                formEntityList      = formEntityList,
                dFormData           = dFormData,
                currentNode         = node
            };

            return(Content(dataJson.ToJson()));
        }
コード例 #13
0
        /// <summary>
        ///  更新流程实例 审核节点用
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="dbbaseId"></param>
        /// <param name="processInstanceEntity"></param>
        /// <param name="processSchemeEntity"></param>
        /// <param name="processOperationHistoryEntity"></param>
        /// <param name="delegateRecordEntityList"></param>
        /// <param name="processTransitionHistoryEntity"></param>
        /// <returns></returns>
        public int SaveProcess(string sql, string dbbaseId, WFProcessInstanceEntity processInstanceEntity, WFProcessSchemeEntity processSchemeEntity, WFProcessOperationHistoryEntity processOperationHistoryEntity, List <WFDelegateRecordEntity> delegateRecordEntityList, WFProcessTransitionHistoryEntity processTransitionHistoryEntity = null)
        {
            #region 这里才是正常流程处理

            IRepository db2 = this.BaseRepository().BeginTrans();
            try
            {
                processInstanceEntity.Modify(processInstanceEntity.Id);
                db2.Update(processSchemeEntity);
                db2.Update(processInstanceEntity);

                processOperationHistoryEntity.Create();
                processOperationHistoryEntity.ProcessId = processInstanceEntity.Id;
                db2.Insert(processOperationHistoryEntity);

                if (processTransitionHistoryEntity != null)
                {
                    processTransitionHistoryEntity.Create();
                    processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id;
                    db2.Insert(processTransitionHistoryEntity);
                }
                if (delegateRecordEntityList != null)
                {
                    foreach (var item in delegateRecordEntityList)
                    {
                        item.Create();
                        item.ProcessId = processInstanceEntity.Id;
                        db2.Insert(item);
                    }
                }
                db2.Commit();
                return(1);
            }
            catch
            {
                db2.Rollback();
                throw;
            }

            #endregion
        }
コード例 #14
0
        /// <summary>
        /// 存储工作流实例进程(编辑草稿用)
        /// </summary>
        /// <param name="processInstanceEntity"></param>
        /// <param name="processSchemeEntity"></param>
        /// <param name="wfOperationHistoryEntity"></param>
        /// <returns></returns>
        public int SaveProcess(string processId, WFProcessInstanceEntity processInstanceEntity, WFProcessSchemeEntity processSchemeEntity, WFProcessOperationHistoryEntity wfOperationHistoryEntity = null)
        {
            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                //草稿不需要流程编号
                processInstanceEntity.Code = "";
                if (string.IsNullOrEmpty(processInstanceEntity.Id))
                {
                    processSchemeEntity.Create();
                    db.Insert(processSchemeEntity);

                    processInstanceEntity.Create();
                    processInstanceEntity.Id = processId;
                    processInstanceEntity.ProcessSchemeId = processSchemeEntity.Id;
                    db.Insert(processInstanceEntity);
                }
                else
                {
                    processInstanceEntity.Modify(processId);
                    db.Update(processInstanceEntity);

                    processSchemeEntity.Modify(processInstanceEntity.ProcessSchemeId);
                    db.Update(processSchemeEntity);
                }
                if (wfOperationHistoryEntity != null)
                {
                    wfOperationHistoryEntity.Create();
                    wfOperationHistoryEntity.ProcessId = processId;
                    db.Insert(wfOperationHistoryEntity);
                }
                db.Commit();
                return(1);
            }
            catch
            {
                db.Rollback();
                throw;
            }
        }
コード例 #15
0
 /// <summary>
 /// 保存工作流进程实例
 /// </summary>
 /// <param name="processInstanceEntity"></param>
 /// <returns></returns>
 public int SaveProcess(WFProcessInstanceEntity processInstanceEntity)
 {
     try
     {
         int num;
         WFProcessInstanceEntity isExistEntity = this.BaseRepository().FindEntity <WFProcessInstanceEntity>(processInstanceEntity.Id);
         if (isExistEntity == null)
         {
             processInstanceEntity.Create();
             num = this.BaseRepository().Insert(processInstanceEntity);
         }
         else
         {
             processInstanceEntity.Modify(processInstanceEntity.Id);
             num = this.BaseRepository().Update(processInstanceEntity);
         }
         return(num);
     }
     catch
     {
         throw;
     }
 }
コード例 #16
0
        /// <summary>
        /// 存储工作流实例进程(创建实例进程)
        /// </summary>
        /// <param name="wfRuntimeModel"></param>
        /// <param name="processInstanceEntity"></param>
        /// <param name="processSchemeEntity"></param>
        /// <param name="processOperationHistoryEntity"></param>
        /// <param name="delegateRecordEntity"></param>
        /// <returns></returns>
        public int SaveProcess(WF_RuntimeModel wfRuntimeModel, WFProcessInstanceEntity processInstanceEntity, WFProcessSchemeEntity processSchemeEntity, WFProcessOperationHistoryEntity processOperationHistoryEntity, WFProcessTransitionHistoryEntity processTransitionHistoryEntity, List <WFDelegateRecordEntity> delegateRecordEntityList)
        {
            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                //占用单据号
                coderuleService.UseRuleSeed(OperatorProvider.Provider.Current().LoginInfo.UserId, "", "10007", db);

                if (string.IsNullOrEmpty(processInstanceEntity.Id))
                {
                    processSchemeEntity.Create();
                    db.Insert(processSchemeEntity);

                    processInstanceEntity.Create();
                    processInstanceEntity.Id = wfRuntimeModel.processId;
                    processInstanceEntity.ProcessSchemeId = processSchemeEntity.Id;
                    db.Insert(processInstanceEntity);
                }
                else
                {
                    processInstanceEntity.Modify(processInstanceEntity.Id);
                    db.Update(processSchemeEntity);
                    db.Update(processInstanceEntity);
                }
                processOperationHistoryEntity.Create();
                processOperationHistoryEntity.ProcessId = processInstanceEntity.Id;
                db.Insert(processOperationHistoryEntity);

                if (processTransitionHistoryEntity != null)
                {
                    processTransitionHistoryEntity.Create();
                    processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id;
                    db.Insert(processTransitionHistoryEntity);
                }
                foreach (var item in delegateRecordEntityList)
                {
                    item.Create();
                    item.ProcessId = processInstanceEntity.Id;
                    db.Insert(item);
                }
                if (processInstanceEntity.FrmType == 0)
                {
                    DataBaseLinkEntity dataBaseLinkEntity = dataBaseLinkService.GetEntity(wfRuntimeModel.schemeContentJson.Frm.FrmDbId.Value);//获取
                    if (wfRuntimeModel.schemeContentJson.Frm.isSystemTable.Value != 0)
                    {
                        //是否执行插入数据  外包员工薪资申请流程处理  create by chand 2016-11-29
                        if (processSchemeEntity.WFSchemeInfoId != "3416863b-d5c1-4b31-b59f-e5fd8cd2d5f1")
                        {
                            this.BaseRepository(dataBaseLinkEntity.DbConnection).ExecuteBySql(wfRuntimeModel.sqlFrm);
                        }
                    }
                }
                db.Commit();
                return(1);
            }
            catch
            {
                db.Rollback();
                throw;
            }
        }