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)); }
/// <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; } }
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)); }
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)); }
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)); }
/// <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; } }
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())); }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }
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())); }
/// <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 }
/// <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; } }
/// <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; } }
/// <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; } }