Exemple #1
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
            {
                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)
                //    {
                //        this.BaseRepository(dataBaseLinkEntity.DbConnection).ExecuteBySql(wfRuntimeModel.sqlFrm);
                //    }
                //}
                db.Commit();
                return(1);
            }
            catch
            {
                db.Rollback();
                throw;
            }
        }
Exemple #2
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, WFProcessInstance processInstanceEntity, WFProcessScheme processSchemeEntity, WFProcessOperationHistory processOperationHistoryEntity, WFProcessTransitionHistory processTransitionHistoryEntity)
        {
            try
            {
                if (Guid.Empty == (processInstanceEntity.Id))
                {
                    processSchemeEntity.Create();
                    _unitWork.Add(processSchemeEntity);

                    processInstanceEntity.Create();
                    processInstanceEntity.Id = Guid.Parse(wfRuntimeModel.processId);
                    processInstanceEntity.ProcessSchemeId = processSchemeEntity.Id;
                    _unitWork.Add(processInstanceEntity);
                }
                else
                {
                    processInstanceEntity.Modify(processInstanceEntity.Id);
                    _unitWork.Update(processSchemeEntity);
                    _unitWork.Update(processInstanceEntity);
                }
                processOperationHistoryEntity.ProcessId = processInstanceEntity.Id;
                _unitWork.Add(processOperationHistoryEntity);

                if (processTransitionHistoryEntity != null)
                {
                    processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id;
                    _unitWork.Add(processTransitionHistoryEntity);
                }

                _unitWork.Save();
                return(1);
            }
            catch
            {
                throw;
            }
        }
        /// <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;
            }
        }