From d718c777597546ac302b2e8a98f291566747e9e8 Mon Sep 17 00:00:00 2001 From: yubao Date: Mon, 12 Mar 2018 23:44:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E4=BA=8E=E5=8E=9F=E6=9C=89gooflow?= =?UTF-8?q?=E7=9A=84=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CodeSmith/CSharp/WebGenerate.cst | 23 +- ...sInstanceService.cs => FlowInstanceApp.cs} | 522 +++++++++--------- OpenAuth.App/FlowSchemeApp.cs | 113 ++++ OpenAuth.App/OpenAuth.App.csproj | 6 +- .../Request/QueryFlowInstanceListReq.cs | 8 + .../Request/QueryFlowSchemeListReq.cs | 7 + OpenAuth.App/WFSchemeService.cs | 115 ---- .../FlowManage/Controllers/FileController.cs | 76 --- .../Controllers/FlowDesignController.cs | 164 ------ .../Controllers/FlowInstancesController.cs | 230 -------- .../FlowManage/FlowManageAreaRegistration.cs | 24 - .../Views/FlowDesign/FlowLineForm.cshtml | 207 ------- .../Views/FlowDesign/FlowNodeForm.cshtml | 415 -------------- .../Views/FlowDesign/FlowSchemeBuider.cshtml | 423 -------------- .../FlowManage/Views/FlowDesign/Index.cshtml | 41 -- .../Views/FlowDesign/PreviewIndex.cshtml | 113 ---- .../FlowInstances/FlowProcessNewForm.cshtml | 156 ------ .../Views/FlowInstances/Index.cshtml | 56 -- .../FlowInstances/ProcessLookForm.cshtml | 48 -- .../FlowInstances/VerificationForm.cshtml | 223 -------- .../Views/FormDesign/FormPreview.cshtml | 36 -- .../Views/FormDesign/FrmBuider.cshtml | 238 -------- .../FlowManage/Views/FormDesign/Index.cshtml | 41 -- .../Areas/FlowManage/Views/web.config | 36 -- .../Controllers/FlowInstancesController.cs | 81 +++ .../Controllers/FlowSchemesController.cs | 81 +++ OpenAuth.Mvc/OpenAuth.Mvc.csproj | 28 +- OpenAuth.Mvc/Views/FlowInstances/Index.cshtml | 181 ++++++ OpenAuth.Mvc/Views/FlowSchemes/Index.cshtml | 98 ++++ OpenAuth.Mvc/userJs/flowInstances.js | 156 ++++++ OpenAuth.Mvc/userJs/flowSchemes.js | 156 ++++++ .../{WFProcessInstance.cs => FlowInstance.cs} | 47 +- ...ory.cs => FlowInstanceOperationHistory.cs} | 10 +- ...ProcessScheme.cs => FlowInstanceScheme.cs} | 32 +- ...ry.cs => FlowInstanceTransitionHistory.cs} | 18 +- .../Domain/{WFSchemeInfo.cs => FlowScheme.cs} | 21 +- ...WFSchemeContent.cs => FlowSchemeDetail.cs} | 10 +- ...ocessInstanceMap.cs => FlowInstanceMap.cs} | 36 +- ....cs => FlowInstanceOperationHistoryMap.cs} | 14 +- ...sSchemeMap.cs => FlowInstanceSchemeMap.cs} | 14 +- ...cs => FlowInstanceTransitionHistoryMap.cs} | 32 +- ...meContentMap.cs => FlowSchemeDetailMap.cs} | 14 +- .../{WFSchemeInfoMap.cs => FlowSchemeMap.cs} | 24 +- .../OpenAuth.Repository.csproj | 24 +- OpenAuth.Repository/OpenAuthDBContext.cs | 24 +- OpenAuth.UnitTest/TestWorkflow.cs | 15 +- 建表&初始化数据.sql | Bin 99258 -> 261798 bytes 数据库设计关系图/OpenAuthDB.apm | 497 +++++++++-------- 数据库设计关系图/OpenAuthDB.pdm | 327 ++++++----- 49 files changed, 1786 insertions(+), 3475 deletions(-) rename OpenAuth.App/{WFProcessInstanceService.cs => FlowInstanceApp.cs} (59%) create mode 100644 OpenAuth.App/FlowSchemeApp.cs create mode 100644 OpenAuth.App/Request/QueryFlowInstanceListReq.cs create mode 100644 OpenAuth.App/Request/QueryFlowSchemeListReq.cs delete mode 100644 OpenAuth.App/WFSchemeService.cs delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Controllers/FileController.cs delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowDesignController.cs delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowInstancesController.cs delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/FlowManageAreaRegistration.cs delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowLineForm.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowNodeForm.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowSchemeBuider.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/Index.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/PreviewIndex.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/FlowProcessNewForm.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/Index.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/ProcessLookForm.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/VerificationForm.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FormPreview.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FrmBuider.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/Index.cshtml delete mode 100644 OpenAuth.Mvc/Areas/FlowManage/Views/web.config create mode 100644 OpenAuth.Mvc/Controllers/FlowInstancesController.cs create mode 100644 OpenAuth.Mvc/Controllers/FlowSchemesController.cs create mode 100644 OpenAuth.Mvc/Views/FlowInstances/Index.cshtml create mode 100644 OpenAuth.Mvc/Views/FlowSchemes/Index.cshtml create mode 100644 OpenAuth.Mvc/userJs/flowInstances.js create mode 100644 OpenAuth.Mvc/userJs/flowSchemes.js rename OpenAuth.Repository/Domain/{WFProcessInstance.cs => FlowInstance.cs} (74%) rename OpenAuth.Repository/Domain/{WFProcessOperationHistory.cs => FlowInstanceOperationHistory.cs} (80%) rename OpenAuth.Repository/Domain/{WFProcessScheme.cs => FlowInstanceScheme.cs} (58%) rename OpenAuth.Repository/Domain/{WFProcessTransitionHistory.cs => FlowInstanceTransitionHistory.cs} (80%) rename OpenAuth.Repository/Domain/{WFSchemeInfo.cs => FlowScheme.cs} (82%) rename OpenAuth.Repository/Domain/{WFSchemeContent.cs => FlowSchemeDetail.cs} (83%) rename OpenAuth.Repository/Mapping/{WFProcessInstanceMap.cs => FlowInstanceMap.cs} (78%) rename OpenAuth.Repository/Mapping/{WFProcessOperationHistoryMap.cs => FlowInstanceOperationHistoryMap.cs} (78%) rename OpenAuth.Repository/Mapping/{WFProcessSchemeMap.cs => FlowInstanceSchemeMap.cs} (78%) rename OpenAuth.Repository/Mapping/{WFProcessTransitionHistoryMap.cs => FlowInstanceTransitionHistoryMap.cs} (71%) rename OpenAuth.Repository/Mapping/{WFSchemeContentMap.cs => FlowSchemeDetailMap.cs} (81%) rename OpenAuth.Repository/Mapping/{WFSchemeInfoMap.cs => FlowSchemeMap.cs} (84%) diff --git a/CodeSmith/CSharp/WebGenerate.cst b/CodeSmith/CSharp/WebGenerate.cst index 51fbbc18..b645b963 100644 --- a/CodeSmith/CSharp/WebGenerate.cst +++ b/CodeSmith/CSharp/WebGenerate.cst @@ -57,21 +57,6 @@ Generating Entities ... Stopwatch watch = Stopwatch.StartNew(); string outputDirectory = Path.GetFullPath(directory); - if (!Directory.Exists(directory)) //根目录 - Directory.CreateDirectory(directory); - - if (!Directory.Exists(directory +"/controllers")) //controller目录 - Directory.CreateDirectory(directory +"/controllers"); - - if (!Directory.Exists(directory +"/views")) //视图根文件夹 - Directory.CreateDirectory(directory +"/views"); - - if (!Directory.Exists(directory +"/js")) //js根目录 - Directory.CreateDirectory(directory +"/js"); - - if (!Directory.Exists(directory +"/views/"+ModuleName +"Manager")) //视图文件夹 - Directory.CreateDirectory(directory +"/views/"+ModuleName +"Manager"); - CreateControllerClass(); CreateApplicationClass(); CreateHtmlClass(); @@ -95,8 +80,7 @@ Generating Entities ... string rootDirectory = Path.GetFullPath(directory); - string generatedFile ="controllers" + ModuleName + "sController.cs"; - generatedFile = Path.Combine(rootDirectory, generatedFile); + string generatedFile = Path.GetFullPath(directory) + "/controllers/"+ ModuleName + "sController.cs"; generatedClass.ModuleName = ModuleName; @@ -112,8 +96,7 @@ Generating Entities ... string rootDirectory = Path.GetFullPath(directory); - string generatedFile = ModuleName + "App.cs"; - generatedFile = Path.Combine(rootDirectory, generatedFile); + string generatedFile = Path.GetFullPath(directory) + "/APP/"+ ModuleName + "App.cs"; generatedClass.ModuleName = ModuleName; @@ -142,7 +125,7 @@ Generating Entities ... JSGenerateClass generatedClass = this.Create(); this.CopyPropertiesTo(generatedClass); - string generatedFile = Path.GetFullPath(directory) + "/js/"+ModuleName+"s.js"; + string generatedFile = Path.GetFullPath(directory) + "/userJs/"+ModuleName+"s.js"; generatedClass.ModuleName = ModuleName; diff --git a/OpenAuth.App/WFProcessInstanceService.cs b/OpenAuth.App/FlowInstanceApp.cs similarity index 59% rename from OpenAuth.App/WFProcessInstanceService.cs rename to OpenAuth.App/FlowInstanceApp.cs index ad404c31..8b2707de 100644 --- a/OpenAuth.App/WFProcessInstanceService.cs +++ b/OpenAuth.App/FlowInstanceApp.cs @@ -1,34 +1,32 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Infrastructure; using OpenAuth.App.Extention; +using OpenAuth.App.Request; using OpenAuth.App.Response; using OpenAuth.App.SSO; using OpenAuth.Repository.Domain; -using OpenAuth.Repository.Interface; namespace OpenAuth.App { /// - /// 工作流实例表操作 - /// 李玉宝新增于2017-01-16 20:33:48 + /// ʵ /// - public class WFProcessInstanceService + public class FlowInstanceApp :BaseApp { - public IUnitWork _unitWork { get; set; } - #region 获取数据 + #region ȡ /// - /// 获取实例进程信息实体 + /// ȡʵϢʵ /// /// The key vlaue. - /// WFProcessInstance. - public WFProcessInstance GetEntity(string keyVlaue) + /// FlowInstance. + public FlowInstance GetEntity(string keyVlaue) { try { - return _unitWork.FindSingle(u =>u.Id == keyVlaue); + return UnitWork.FindSingle(u =>u.Id == keyVlaue); } catch { @@ -37,41 +35,40 @@ namespace OpenAuth.App } #endregion - #region 提交数据 + #region ύ /// - /// 存储工作流实例进程(编辑草稿用) + /// 洢ʵ(༭ݸ) /// /// /// /// /// - public int SaveProcess(string processId, WFProcessInstance processInstanceEntity, WFProcessScheme processSchemeEntity, WFProcessOperationHistory wfOperationHistoryEntity = null) + public int SaveProcess(string processId, FlowInstance processInstanceEntity, FlowInstanceScheme processSchemeEntity, FlowInstanceOperationHistory wfOperationHistoryEntity = null) { try { if (string.Empty ==(processInstanceEntity.Id)) { - _unitWork.Add(processSchemeEntity); + UnitWork.Add(processSchemeEntity); - processInstanceEntity.Create(); processInstanceEntity.Id = processId; - processInstanceEntity.ProcessSchemeId = processSchemeEntity.Id; - _unitWork.Add(processInstanceEntity); + processInstanceEntity.InstanceSchemeId = processSchemeEntity.Id; + UnitWork.Add(processInstanceEntity); } else { - processInstanceEntity.Modify(processId); - _unitWork.Update(processInstanceEntity); + processInstanceEntity.Id = (processId); + UnitWork.Update(processInstanceEntity); - processSchemeEntity.Modify(processInstanceEntity.ProcessSchemeId); - _unitWork.Update(processSchemeEntity); + processSchemeEntity.Id=(processInstanceEntity.InstanceSchemeId); + UnitWork.Update(processSchemeEntity); } if (wfOperationHistoryEntity != null) { - wfOperationHistoryEntity.ProcessId = processId; - _unitWork.Add(wfOperationHistoryEntity); + wfOperationHistoryEntity.InstanceId = processId; + UnitWork.Add(wfOperationHistoryEntity); } - _unitWork.Save(); + UnitWork.Save(); return 1; } catch @@ -80,7 +77,7 @@ namespace OpenAuth.App } } /// - /// 存储工作流实例进程(创建实例进程) + /// 洢ʵ(ʵ) /// /// /// @@ -88,36 +85,34 @@ namespace OpenAuth.App /// /// /// - public int SaveProcess(WF_RuntimeModel wfRuntimeModel, WFProcessInstance processInstanceEntity, WFProcessScheme processSchemeEntity, WFProcessOperationHistory processOperationHistoryEntity, WFProcessTransitionHistory processTransitionHistoryEntity) + public int SaveProcess(WF_RuntimeModel wfRuntimeModel, FlowInstance processInstanceEntity, FlowInstanceScheme processSchemeEntity, FlowInstanceOperationHistory processOperationHistoryEntity, FlowInstanceTransitionHistory processTransitionHistoryEntity) { try { if (string.Empty == (processInstanceEntity.Id)) { - processSchemeEntity.Create(); - _unitWork.Add(processSchemeEntity); + UnitWork.Add(processSchemeEntity); - processInstanceEntity.Create(); processInstanceEntity.Id = (string)(wfRuntimeModel.processId); - processInstanceEntity.ProcessSchemeId = processSchemeEntity.Id; - _unitWork.Add(processInstanceEntity); + processInstanceEntity.InstanceSchemeId = processSchemeEntity.Id; + UnitWork.Add(processInstanceEntity); } else { - processInstanceEntity.Modify(processInstanceEntity.Id); - _unitWork.Update(processSchemeEntity); - _unitWork.Update(processInstanceEntity); + processInstanceEntity.Id =(processInstanceEntity.Id); + UnitWork.Update(processSchemeEntity); + UnitWork.Update(processInstanceEntity); } - processOperationHistoryEntity.ProcessId = processInstanceEntity.Id; - _unitWork.Add(processOperationHistoryEntity); + processOperationHistoryEntity.InstanceId = processInstanceEntity.Id; + UnitWork.Add(processOperationHistoryEntity); if (processTransitionHistoryEntity != null) { - processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id; - _unitWork.Add(processTransitionHistoryEntity); + processTransitionHistoryEntity.InstanceId = processInstanceEntity.Id; + UnitWork.Add(processTransitionHistoryEntity); } - _unitWork.Save(); + UnitWork.Save(); return 1; } catch @@ -126,32 +121,32 @@ namespace OpenAuth.App } } /// - /// 存储工作流实例进程(审核驳回重新提交) + /// 洢ʵ̣˲ύ /// /// /// /// /// /// - public int SaveProcess(WFProcessInstance processInstanceEntity, WFProcessScheme processSchemeEntity, - WFProcessOperationHistory processOperationHistoryEntity, WFProcessTransitionHistory processTransitionHistoryEntity = null) + public int SaveProcess(FlowInstance processInstanceEntity, FlowInstanceScheme processSchemeEntity, + FlowInstanceOperationHistory processOperationHistoryEntity, FlowInstanceTransitionHistory processTransitionHistoryEntity = null) { try { - processInstanceEntity.Modify(processInstanceEntity.Id); - _unitWork.Update(processSchemeEntity); - _unitWork.Update(processInstanceEntity); + processInstanceEntity.Id=(processInstanceEntity.Id); + UnitWork.Update(processSchemeEntity); + UnitWork.Update(processInstanceEntity); - processOperationHistoryEntity.ProcessId = processInstanceEntity.Id; - _unitWork.Add(processOperationHistoryEntity); + processOperationHistoryEntity.InstanceId = processInstanceEntity.Id; + UnitWork.Add(processOperationHistoryEntity); if (processTransitionHistoryEntity != null) { - processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id; - _unitWork.Add(processTransitionHistoryEntity); + processTransitionHistoryEntity.InstanceId = processInstanceEntity.Id; + UnitWork.Add(processTransitionHistoryEntity); } - _unitWork.Save(); + UnitWork.Save(); return 1; } catch @@ -160,7 +155,7 @@ namespace OpenAuth.App } } /// - /// 更新流程实例 审核节点用 + /// ʵ ˽ڵ /// /// /// @@ -170,29 +165,29 @@ namespace OpenAuth.App /// /// /// - public int SaveProcess(string sql,string dbbaseId, WFProcessInstance processInstanceEntity, WFProcessScheme processSchemeEntity, WFProcessOperationHistory processOperationHistoryEntity, WFProcessTransitionHistory processTransitionHistoryEntity = null) + public int SaveProcess(string sql,string dbbaseId, FlowInstance processInstanceEntity, FlowInstanceScheme processSchemeEntity, FlowInstanceOperationHistory processOperationHistoryEntity, FlowInstanceTransitionHistory processTransitionHistoryEntity = null) { try { - processInstanceEntity.Modify(processInstanceEntity.Id); - _unitWork.Update(processSchemeEntity); - _unitWork.Update(processInstanceEntity); + processInstanceEntity.Id=(processInstanceEntity.Id); + UnitWork.Update(processSchemeEntity); + UnitWork.Update(processInstanceEntity); - processOperationHistoryEntity.ProcessId = processInstanceEntity.Id; - _unitWork.Add(processOperationHistoryEntity); + processOperationHistoryEntity.InstanceId = processInstanceEntity.Id; + UnitWork.Add(processOperationHistoryEntity); if (processTransitionHistoryEntity != null) { - processTransitionHistoryEntity.ProcessId = processInstanceEntity.Id; - _unitWork.Add(processTransitionHistoryEntity); + processTransitionHistoryEntity.InstanceId = processInstanceEntity.Id; + UnitWork.Add(processTransitionHistoryEntity); } - //if (!string.IsNullOrEmpty(dbbaseId) && !string.IsNullOrEmpty(sql))//测试环境不允许执行sql语句 + //if (!string.IsNullOrEmpty(dbbaseId) && !string.IsNullOrEmpty(sql))//Իִsql //{ - // DataBaseLinkEntity dataBaseLinkEntity = dataBaseLinkService.GetEntity(dbbaseId);//获取 + // DataBaseLinkEntity dataBaseLinkEntity = dataBaseLinkService.GetEntity(dbbaseId);//ȡ // this.BaseRepository(dataBaseLinkEntity.DbConnection).ExecuteBySql(sql.Replace("{0}", processInstanceEntity.Id)); //} - _unitWork.Save(); + UnitWork.Save(); return 1; } catch @@ -202,19 +197,19 @@ namespace OpenAuth.App } /// - /// 删除工作流实例进程(删除草稿使用) + /// ɾʵ(ɾݸʹ) /// - /// 主键 + /// /// public int DeleteProcess(string keyValue) { try { - WFProcessInstance entity = _unitWork.FindSingle(u =>u.Id ==keyValue); + FlowInstance entity = UnitWork.FindSingle(u =>u.Id ==keyValue); - _unitWork.Delete(u =>u.Id == keyValue); - _unitWork.Delete(u =>u.Id == entity.ProcessSchemeId); - _unitWork.Save(); + UnitWork.Delete(u =>u.Id == keyValue); + UnitWork.Delete(u =>u.Id == entity.InstanceSchemeId); + UnitWork.Save(); return 1; } catch { @@ -222,55 +217,55 @@ namespace OpenAuth.App } } /// - /// 虚拟操作实例 + /// ʵ /// /// - /// 0暂停,1启用,2取消(召回) + /// 0ͣ,1,2ȡٻأ /// public int OperateVirtualProcess(string keyValue,int state) { try { - WFProcessInstance entity = _unitWork.FindSingle(u =>u.Id ==keyValue); + FlowInstance entity = UnitWork.FindSingle(u =>u.Id ==keyValue); if (entity.IsFinish == 1) { - throw new Exception("实例已经审核完成,操作失败"); + throw new Exception("ʵѾ,ʧ"); } else if (entity.IsFinish == 2) { - throw new Exception("实例已经取消,操作失败"); + throw new Exception("ʵѾȡ,ʧ"); } - /// 流程是否完成(0运行中,1运行结束,2被召回,3不同意,4表示被驳回) + /// Ƿ(0,1н,2ٻ,3ͬ,4ʾ) string content = ""; switch (state) { case 0: - if (entity.EnabledMark == 0) + if (entity.Disabled == 0) { return 1; } - entity.EnabledMark = 0; - content = "【暂停】暂停了一个流程进程【" + entity.Code + "/" + entity.CustomName + "】"; + entity.Disabled = 0; + content = "ͣͣһ̡̽" + entity.Code + "/" + entity.CustomName + ""; break; case 1: - if (entity.EnabledMark == 1) + if (entity.Disabled == 1) { return 1; } - entity.EnabledMark = 1; - content = "【启用】启用了一个流程进程【" + entity.Code + "/" + entity.CustomName + "】"; + entity.Disabled = 1; + content = "áһ̡̽" + entity.Code + "/" + entity.CustomName + ""; break; case 2: entity.IsFinish = 2; - content = "【召回】召回了一个流程进程【" + entity.Code + "/" + entity.CustomName + "】"; + content = "ٻءٻһ̡̽" + entity.Code + "/" + entity.CustomName + ""; break; } - _unitWork.Update(entity); - WFProcessOperationHistory processOperationHistoryEntity = new WFProcessOperationHistory(); - processOperationHistoryEntity.ProcessId = entity.Id; + UnitWork.Update(entity); + FlowInstanceOperationHistory processOperationHistoryEntity = new FlowInstanceOperationHistory(); + processOperationHistoryEntity.InstanceId = entity.Id; processOperationHistoryEntity.Content = content; - _unitWork.Add(processOperationHistoryEntity); - _unitWork.Save(); + UnitWork.Add(processOperationHistoryEntity); + UnitWork.Save(); return 1; } catch @@ -279,7 +274,7 @@ namespace OpenAuth.App } } /// - /// 流程指派 + /// ָ /// /// /// @@ -287,10 +282,10 @@ namespace OpenAuth.App { try { - WFProcessInstance entity = new WFProcessInstance(); + FlowInstance entity = new FlowInstance(); entity.Id = processId; entity.MakerList = makeLists; - _unitWork.Update(entity); + UnitWork.Update(entity); } catch { throw; @@ -298,54 +293,31 @@ namespace OpenAuth.App } #endregion - public TableData Load(string userid, string type, int pageCurrent, int pageSize) - { - //todo:待办/已办/我的 - var result = new TableData(); - - result.count = _unitWork.Find(u => u.CreateUserId == userid).Count(); - if (type == "inbox") //待办事项 - { - result.data = _unitWork.Find(pageCurrent, pageSize, "CreateDate descending", null).ToList(); - - } - else if (type == "outbox") //已办事项 - { - result.data = _unitWork.Find(pageCurrent, pageSize, "CreateDate descending", null).ToList(); - - } - else //我的流程 - { - result.data = _unitWork.Find(pageCurrent, pageSize, "CreateDate descending", null).ToList(); - } - - return result; - } - #region 流程处理API + #region ̴API /// - /// 创建一个实例 + /// һʵ /// - /// 进程GUID - /// 模板信息ID + /// GUID + /// ģϢID /// - /// 进程编号 - /// 自定义名称 - /// 备注 - /// 表单数据信息 + /// ̱ + /// Զ + /// ע + /// Ϣ /// - public bool CreateInstance(string processId, string schemeInfoId, WFProcessInstance WFProcessInstance, string frmData = null) + public bool CreateInstance(string processId, string schemeInfoId, FlowInstance FlowInstance, string frmData = null) { try { - WFSchemeInfo WFSchemeInfo = _unitWork.FindSingle(u => u.Id == schemeInfoId); - WFSchemeContent WFSchemeContent = _unitWork.FindSingle(u => - u.SchemeInfoId == schemeInfoId && u.SchemeVersion == WFSchemeInfo.SchemeVersion); + FlowScheme FlowScheme = UnitWork.FindSingle(u => u.Id == schemeInfoId); + FlowSchemeDetail FlowSchemeDetail = UnitWork.FindSingle(u => + u.SchemeId == schemeInfoId && u.SchemeVersion == FlowScheme.SchemeVersion); WF_RuntimeInitModel wfRuntimeInitModel = new WF_RuntimeInitModel() { - schemeContent = WFSchemeContent.SchemeContent, + schemeContent = FlowSchemeDetail.SchemeContent, currentNodeId = "", frmData = frmData, processId = processId @@ -354,7 +326,7 @@ namespace OpenAuth.App if (frmData == null) { - throw new Exception("自定义表单需要提交表单数据"); + throw new Exception("ԶҪύ"); } else { @@ -363,42 +335,42 @@ namespace OpenAuth.App var user = AuthUtil.GetCurrentUser(); - #region 实例信息 - WFProcessInstance.ActivityId = wfruntime.runtimeModel.nextNodeId; - WFProcessInstance.ActivityType = wfruntime.GetStatus();//-1无法运行,0会签开始,1会签结束,2一般节点,4流程运行结束 - WFProcessInstance.ActivityName = wfruntime.runtimeModel.nextNode.name; - WFProcessInstance.PreviousId = wfruntime.runtimeModel.currentNodeId; - WFProcessInstance.SchemeType = WFSchemeInfo.SchemeType; - WFProcessInstance.FrmType = WFSchemeInfo.FrmType; - WFProcessInstance.EnabledMark = 1;//正式运行 - WFProcessInstance.CreateUserId = user.User.Id.ToString(); - WFProcessInstance.CreateUserName = user.User.Account; - WFProcessInstance.MakerList = (wfruntime.GetStatus() != 4 ? GetMakerList(wfruntime) : "");//当前节点可执行的人信息 - WFProcessInstance.IsFinish = (wfruntime.GetStatus() == 4 ? 1 : 0); + #region ʵϢ + FlowInstance.ActivityId = wfruntime.runtimeModel.nextNodeId; + FlowInstance.ActivityType = wfruntime.GetStatus();//-1޷,0ǩʼ,1ǩ,2һڵ,4н + FlowInstance.ActivityName = wfruntime.runtimeModel.nextNode.name; + FlowInstance.PreviousId = wfruntime.runtimeModel.currentNodeId; + FlowInstance.SchemeType = FlowScheme.SchemeType; + FlowInstance.FrmType = FlowScheme.FrmType; + FlowInstance.Disabled = 0;//ʽ + FlowInstance.CreateUserId = user.User.Id.ToString(); + FlowInstance.CreateUserName = user.User.Account; + FlowInstance.MakerList = (wfruntime.GetStatus() != 4 ? GetMakerList(wfruntime) : "");//ǰڵִеϢ + FlowInstance.IsFinish = (wfruntime.GetStatus() == 4 ? 1 : 0); #endregion - #region 实例模板 + #region ʵģ var data = new { - SchemeContent = WFSchemeContent.SchemeContent, + SchemeContent = FlowSchemeDetail.SchemeContent, frmData = frmData }; - WFProcessScheme WFProcessScheme = new WFProcessScheme + FlowInstanceScheme FlowInstanceScheme = new FlowInstanceScheme { - SchemeInfoId = schemeInfoId, - SchemeVersion = WFSchemeInfo.SchemeVersion, - ProcessType = 1,//1正式,0草稿 + SchemeId = schemeInfoId, + SchemeVersion = FlowScheme.SchemeVersion, + ProcessType = 1,//1ʽ0ݸ SchemeContent = data.ToJson().ToString() }; #endregion - #region 流程操作记录 - WFProcessOperationHistory processOperationHistoryEntity = new WFProcessOperationHistory(); - processOperationHistoryEntity.Content = "【创建】" + user.User.Name + "创建了一个流程进程【" + WFProcessInstance.Code + "/" + WFProcessInstance.CustomName + "】"; + #region ̲¼ + FlowInstanceOperationHistory processOperationHistoryEntity = new FlowInstanceOperationHistory(); + processOperationHistoryEntity.Content = "" + user.User.Name + "һ̡̽" + FlowInstance.Code + "/" + FlowInstance.CustomName + ""; #endregion - #region 流转记录 - WFProcessTransitionHistory processTransitionHistoryEntity = new WFProcessTransitionHistory(); + #region ת¼ + FlowInstanceTransitionHistory processTransitionHistoryEntity = new FlowInstanceTransitionHistory(); processTransitionHistoryEntity.FromNodeId = wfruntime.runtimeModel.currentNodeId; processTransitionHistoryEntity.FromNodeName = wfruntime.runtimeModel.currentNode.name.Value; processTransitionHistoryEntity.FromNodeType = wfruntime.runtimeModel.currentNodeType; @@ -409,12 +381,12 @@ namespace OpenAuth.App processTransitionHistoryEntity.IsFinish = (processTransitionHistoryEntity.ToNodeType == 4 ? 1 : 0); #endregion - #region 委托记录 - //List delegateRecordEntitylist = GetDelegateRecordList(schemeInfoId, WFProcessInstance.Code, WFProcessInstance.CustomName, WFProcessInstance.MakerList); - //WFProcessInstance.MakerList += delegateUserList; + #region ίм¼ + //List delegateRecordEntitylist = GetDelegateRecordList(schemeInfoId, FlowInstance.Code, FlowInstance.CustomName, FlowInstance.MakerList); + //FlowInstance.MakerList += delegateUserList; #endregion - SaveProcess(wfruntime.runtimeModel, WFProcessInstance, WFProcessScheme, processOperationHistoryEntity, processTransitionHistoryEntity); + SaveProcess(wfruntime.runtimeModel, FlowInstance, FlowInstanceScheme, processOperationHistoryEntity, processTransitionHistoryEntity); return true; } @@ -426,7 +398,7 @@ namespace OpenAuth.App } /// - /// 节点审核 + /// ڵ /// /// /// @@ -436,28 +408,28 @@ namespace OpenAuth.App try { string _sqlstr = "", _dbbaseId = ""; - WFProcessInstance WFProcessInstance = GetEntity(processId); - WFProcessScheme WFProcessScheme = _unitWork.FindSingle(u => u.Id == WFProcessInstance.ProcessSchemeId); - WFProcessOperationHistory WFProcessOperationHistory = new WFProcessOperationHistory();//操作记录 - WFProcessTransitionHistory processTransitionHistoryEntity = null;//流转记录 + FlowInstance FlowInstance = GetEntity(processId); + FlowInstanceScheme FlowInstanceScheme = UnitWork.FindSingle(u => u.Id == FlowInstance.InstanceSchemeId); + FlowInstanceOperationHistory FlowInstanceOperationHistory = new FlowInstanceOperationHistory();//¼ + FlowInstanceTransitionHistory processTransitionHistoryEntity = null;//ת¼ - dynamic schemeContentJson = WFProcessScheme.SchemeContent.ToJson();//获取工作流模板内容的json对象; + dynamic schemeContentJson = FlowInstanceScheme.SchemeContent.ToJson();//ȡģݵjson; WF_RuntimeInitModel wfRuntimeInitModel = new WF_RuntimeInitModel() { schemeContent = schemeContentJson.SchemeContent.Value, - currentNodeId = WFProcessInstance.ActivityId, + currentNodeId = FlowInstance.ActivityId, frmData = schemeContentJson.frmData.Value, - previousId = WFProcessInstance.PreviousId, + previousId = FlowInstance.PreviousId, processId = processId }; IWF_Runtime wfruntime = new WF_Runtime(wfRuntimeInitModel); - #region 会签 - if (WFProcessInstance.ActivityType == 0)//会签 + #region ǩ + if (FlowInstance.ActivityType == 0)//ǩ { - wfruntime.MakeTagNode(wfruntime.runtimeModel.currentNodeId, 1, "");//标记当前节点通过 - ///寻找需要审核的节点Id + wfruntime.MakeTagNode(wfruntime.runtimeModel.currentNodeId, 1, "");//ǵǰڵͨ + ///ѰҪ˵ĽڵId string _VerificationNodeId = ""; List _nodelist = wfruntime.GetCountersigningNodeIdList(wfruntime.runtimeModel.currentNodeId); string _makerList = ""; @@ -482,11 +454,11 @@ namespace OpenAuth.App { if (flag) { - WFProcessOperationHistory.Content = "【" + "todo name" + "】【" + wfruntime.runtimeModel.nodeDictionary[_VerificationNodeId].name + "】【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "】同意,备注:" + description; + FlowInstanceOperationHistory.Content = "" + "todo name" + "" + wfruntime.runtimeModel.nodeDictionary[_VerificationNodeId].name + "" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "ͬ,ע" + description; } else { - WFProcessOperationHistory.Content = "【" + "todo name" + "】【" + wfruntime.runtimeModel.nodeDictionary[_VerificationNodeId].name + "】【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "】不同意,备注:" + description; + FlowInstanceOperationHistory.Content = "" + "todo name" + "" + wfruntime.runtimeModel.nodeDictionary[_VerificationNodeId].name + "" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "ͬ,ע" + description; } string _Confluenceres = wfruntime.NodeConfluence(_VerificationNodeId, flag, AuthUtil.GetCurrentUser().User.Id.ToString(), description); @@ -495,24 +467,24 @@ namespace OpenAuth.App SchemeContent = wfruntime.runtimeModel.schemeContentJson.ToString(), frmData = wfruntime.runtimeModel.frmData }; - WFProcessScheme.SchemeContent = _data.ToJson().ToString(); + FlowInstanceScheme.SchemeContent = _data.ToJson().ToString(); switch (_Confluenceres) { - case "-1"://不通过 - WFProcessInstance.IsFinish = 3; + case "-1"://ͨ + FlowInstance.IsFinish = 3; break; - case "1"://等待 + case "1"://ȴ break; - default://通过 - WFProcessInstance.PreviousId = WFProcessInstance.ActivityId; - WFProcessInstance.ActivityId = wfruntime.runtimeModel.nextNodeId; - WFProcessInstance.ActivityType = wfruntime.runtimeModel.nextNodeType;//-1无法运行,0会签开始,1会签结束,2一般节点,4流程运行结束 - WFProcessInstance.ActivityName = wfruntime.runtimeModel.nextNode.name; - WFProcessInstance.IsFinish = (wfruntime.runtimeModel.nextNodeType == 4 ? 1 : 0); - WFProcessInstance.MakerList = (wfruntime.runtimeModel.nextNodeType == 4 ?"": GetMakerList(wfruntime) );//当前节点可执行的人信息 + default://ͨ + FlowInstance.PreviousId = FlowInstance.ActivityId; + FlowInstance.ActivityId = wfruntime.runtimeModel.nextNodeId; + FlowInstance.ActivityType = wfruntime.runtimeModel.nextNodeType;//-1޷,0ǩʼ,1ǩ,2һڵ,4н + FlowInstance.ActivityName = wfruntime.runtimeModel.nextNode.name; + FlowInstance.IsFinish = (wfruntime.runtimeModel.nextNodeType == 4 ? 1 : 0); + FlowInstance.MakerList = (wfruntime.runtimeModel.nextNodeType == 4 ?"": GetMakerList(wfruntime) );//ǰڵִеϢ - #region 流转记录 - processTransitionHistoryEntity = new WFProcessTransitionHistory(); + #region ת¼ + processTransitionHistoryEntity = new FlowInstanceTransitionHistory(); processTransitionHistoryEntity.FromNodeId = wfruntime.runtimeModel.currentNodeId; processTransitionHistoryEntity.FromNodeName = wfruntime.runtimeModel.currentNode.name.Value; processTransitionHistoryEntity.FromNodeType = wfruntime.runtimeModel.currentNodeType; @@ -535,26 +507,26 @@ namespace OpenAuth.App } else { - throw (new Exception("审核异常,找不到审核节点")); + throw (new Exception("쳣,Ҳ˽ڵ")); } } #endregion - #region 一般审核 - else//一般审核 + #region һ + else//һ { if (flag) { wfruntime.MakeTagNode(wfruntime.runtimeModel.currentNodeId, 1, AuthUtil.GetCurrentUser().User.Id.ToString(), description); - WFProcessInstance.PreviousId = WFProcessInstance.ActivityId; - WFProcessInstance.ActivityId = wfruntime.runtimeModel.nextNodeId; - WFProcessInstance.ActivityType = wfruntime.runtimeModel.nextNodeType;//-1无法运行,0会签开始,1会签结束,2一般节点,4流程运行结束 - WFProcessInstance.ActivityName = wfruntime.runtimeModel.nextNode.name; - WFProcessInstance.MakerList = wfruntime.runtimeModel.nextNodeType == 4 ? "" : GetMakerList(wfruntime);//当前节点可执行的人信息 - WFProcessInstance.IsFinish = (wfruntime.runtimeModel.nextNodeType == 4 ? 1 : 0); - #region 流转记录 + FlowInstance.PreviousId = FlowInstance.ActivityId; + FlowInstance.ActivityId = wfruntime.runtimeModel.nextNodeId; + FlowInstance.ActivityType = wfruntime.runtimeModel.nextNodeType;//-1޷,0ǩʼ,1ǩ,2һڵ,4н + FlowInstance.ActivityName = wfruntime.runtimeModel.nextNode.name; + FlowInstance.MakerList = wfruntime.runtimeModel.nextNodeType == 4 ? "" : GetMakerList(wfruntime);//ǰڵִеϢ + FlowInstance.IsFinish = (wfruntime.runtimeModel.nextNodeType == 4 ? 1 : 0); + #region ת¼ - processTransitionHistoryEntity = new WFProcessTransitionHistory + processTransitionHistoryEntity = new FlowInstanceTransitionHistory { FromNodeId = wfruntime.runtimeModel.currentNodeId, FromNodeName = wfruntime.runtimeModel.currentNode.name.Value, @@ -575,26 +547,26 @@ namespace OpenAuth.App _dbbaseId = wfruntime.runtimeModel.currentNode.setInfo.NodeDataBaseToSQL.Value; } - WFProcessOperationHistory.Content = "【" + "todo name" + "】【" + wfruntime.runtimeModel.currentNode.name + "】【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "】同意,备注:" + description; + FlowInstanceOperationHistory.Content = "" + "todo name" + "" + wfruntime.runtimeModel.currentNode.name + "" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "ͬ,ע" + description; } else { - WFProcessInstance.IsFinish = 3; //表示该节点不同意 + FlowInstance.IsFinish = 3; //ʾýڵ㲻ͬ wfruntime.MakeTagNode(wfruntime.runtimeModel.currentNodeId, -1, AuthUtil.GetUserName(), description); - WFProcessOperationHistory.Content = "【" + "todo name" + "】【" + wfruntime.runtimeModel.currentNode.name + "】【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "】不同意,备注:" + description; + FlowInstanceOperationHistory.Content = "" + "todo name" + "" + wfruntime.runtimeModel.currentNode.name + "" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "ͬ,ע" + description; } var data = new { SchemeContent = wfruntime.runtimeModel.schemeContentJson.ToString(), frmData = wfruntime.runtimeModel.frmData }; - WFProcessScheme.SchemeContent = data.ToJson(); + FlowInstanceScheme.SchemeContent = data.ToJson(); } #endregion _res = true; - SaveProcess(_sqlstr, _dbbaseId, WFProcessInstance, WFProcessScheme, WFProcessOperationHistory, processTransitionHistoryEntity); + SaveProcess(_sqlstr, _dbbaseId, FlowInstance, FlowInstanceScheme, FlowInstanceOperationHistory, processTransitionHistoryEntity); return _res; } catch @@ -603,7 +575,7 @@ namespace OpenAuth.App } } /// - /// 驳回 + /// /// /// /// @@ -613,17 +585,17 @@ namespace OpenAuth.App { try { - WFProcessInstance WFProcessInstance = GetEntity(processId); - WFProcessScheme WFProcessScheme = _unitWork.FindSingle(u => u.Id == WFProcessInstance.ProcessSchemeId); - WFProcessOperationHistory WFProcessOperationHistory = new WFProcessOperationHistory(); - WFProcessTransitionHistory processTransitionHistoryEntity = null; - dynamic schemeContentJson = WFProcessScheme.SchemeContent.ToJson();//获取工作流模板内容的json对象; + FlowInstance FlowInstance = GetEntity(processId); + FlowInstanceScheme FlowInstanceScheme = UnitWork.FindSingle(u => u.Id == FlowInstance.InstanceSchemeId); + FlowInstanceOperationHistory FlowInstanceOperationHistory = new FlowInstanceOperationHistory(); + FlowInstanceTransitionHistory processTransitionHistoryEntity = null; + dynamic schemeContentJson = FlowInstanceScheme.SchemeContent.ToJson();//ȡģݵjson; WF_RuntimeInitModel wfRuntimeInitModel = new WF_RuntimeInitModel() { schemeContent = schemeContentJson.SchemeContent.Value, - currentNodeId = WFProcessInstance.ActivityId, + currentNodeId = FlowInstance.ActivityId, frmData = schemeContentJson.frmData.Value, - previousId = WFProcessInstance.PreviousId, + previousId = FlowInstance.PreviousId, processId = processId }; IWF_Runtime wfruntime = new WF_Runtime(wfRuntimeInitModel); @@ -639,16 +611,16 @@ namespace OpenAuth.App resnode = nodeId; } wfruntime.MakeTagNode(wfruntime.runtimeModel.currentNodeId, 0, AuthUtil.GetUserName(), description); - WFProcessInstance.IsFinish = 4;//4表示驳回(需要申请者重新提交表单) + FlowInstance.IsFinish = 4;//4ʾأҪύ if (resnode != "") { - WFProcessInstance.PreviousId = WFProcessInstance.ActivityId; - WFProcessInstance.ActivityId = resnode; - WFProcessInstance.ActivityType = wfruntime.GetNodeStatus(resnode);//-1无法运行,0会签开始,1会签结束,2一般节点,4流程运行结束 - WFProcessInstance.ActivityName = wfruntime.runtimeModel.nodeDictionary[resnode].name; - WFProcessInstance.MakerList = GetMakerList(wfruntime.runtimeModel.nodeDictionary[resnode], WFProcessInstance.PreviousId);//当前节点可执行的人信息 - #region 流转记录 - processTransitionHistoryEntity = new WFProcessTransitionHistory(); + FlowInstance.PreviousId = FlowInstance.ActivityId; + FlowInstance.ActivityId = resnode; + FlowInstance.ActivityType = wfruntime.GetNodeStatus(resnode);//-1޷,0ǩʼ,1ǩ,2һڵ,4н + FlowInstance.ActivityName = wfruntime.runtimeModel.nodeDictionary[resnode].name; + FlowInstance.MakerList = GetMakerList(wfruntime.runtimeModel.nodeDictionary[resnode], FlowInstance.PreviousId);//ǰڵִеϢ + #region ת¼ + processTransitionHistoryEntity = new FlowInstanceTransitionHistory(); processTransitionHistoryEntity.FromNodeId = wfruntime.runtimeModel.currentNodeId; processTransitionHistoryEntity.FromNodeName = wfruntime.runtimeModel.currentNode.name.Value; processTransitionHistoryEntity.FromNodeType = wfruntime.runtimeModel.currentNodeType; @@ -662,12 +634,12 @@ namespace OpenAuth.App var data = new { SchemeContent = wfruntime.runtimeModel.schemeContentJson.ToString(), - frmData = (WFProcessInstance.FrmType == 0 ? wfruntime.runtimeModel.frmData : null) + frmData = (FlowInstance.FrmType == 0 ? wfruntime.runtimeModel.frmData : null) }; - WFProcessScheme.SchemeContent = data.ToJson().ToString(); - WFProcessOperationHistory.Content = "【" + "todo name" + "】【" + wfruntime.runtimeModel.currentNode.name + "】【" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "】驳回,备注:" + description; + FlowInstanceScheme.SchemeContent = data.ToJson().ToString(); + FlowInstanceOperationHistory.Content = "" + "todo name" + "" + wfruntime.runtimeModel.currentNode.name + "" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + ",ע" + description; - SaveProcess(WFProcessInstance, WFProcessScheme, WFProcessOperationHistory, processTransitionHistoryEntity); + SaveProcess(FlowInstance, FlowInstanceScheme, FlowInstanceOperationHistory, processTransitionHistoryEntity); return true; } catch @@ -676,7 +648,7 @@ namespace OpenAuth.App } } /// - /// 召回流程进程 + /// ٻ̽ /// /// public void CallingBackProcess(string processId) @@ -691,7 +663,7 @@ namespace OpenAuth.App } } /// - /// 终止一个实例(彻底删除) + /// ֹһʵ(ɾ) /// /// /// @@ -699,7 +671,7 @@ namespace OpenAuth.App { try { - _unitWork.Delete(u => u.Id == processId); + UnitWork.Delete(u => u.Id == processId); } catch { @@ -707,7 +679,7 @@ namespace OpenAuth.App } } /// - /// 获取某个节点(审核人所能看到的提交表单的权限) + /// ȡijڵ㣨ܿύȨޣ /// /// /// @@ -716,7 +688,7 @@ namespace OpenAuth.App try { List list = new List(); - dynamic schemeContentJson = data.ToJson();//获取工作流模板内容的json对象; + dynamic schemeContentJson = data.ToJson();//ȡģݵjson; string schemeContent1 = schemeContentJson.SchemeContent.Value; dynamic schemeContentJson1 = schemeContent1.ToJson(); string FrmContent = schemeContentJson1.Frm.FrmContent.Value; @@ -757,7 +729,7 @@ namespace OpenAuth.App } } /// - /// 获取某个节点(审核人所能看到的提交表单的权限) + /// ȡijڵ㣨ܿύȨޣ /// /// /// @@ -767,7 +739,7 @@ namespace OpenAuth.App try { List list = new List(); - dynamic schemeContentJson = data.ToJson();//获取工作流模板内容的json对象; + dynamic schemeContentJson = data.ToJson();//ȡģݵjson; string schemeContent1 = schemeContentJson.SchemeContent.Value; dynamic schemeContentJson1 = schemeContent1.ToJson(); string FrmContent = schemeContentJson1.Frm.FrmContent.Value; @@ -810,7 +782,7 @@ namespace OpenAuth.App #endregion /// - /// 寻找该节点执行人 + /// ѰҸýڵִ /// /// /// @@ -821,9 +793,9 @@ namespace OpenAuth.App string makerList = ""; if (wfruntime.runtimeModel.nextNodeId == "-1") { - throw (new Exception("无法寻找到下一个节点")); + throw (new Exception("޷Ѱҵһڵ")); } - if (wfruntime.runtimeModel.nextNodeType == 0)//如果是会签节点 + if (wfruntime.runtimeModel.nextNodeType == 0)//ǻǩڵ { List _nodelist = wfruntime.GetCountersigningNodeIdList(wfruntime.runtimeModel.nextNodeId); string _makerList = ""; @@ -832,11 +804,11 @@ namespace OpenAuth.App _makerList = GetMakerList(wfruntime.runtimeModel.nodeDictionary[item], wfruntime.runtimeModel.processId); if (_makerList == "-1") { - throw (new Exception("无法寻找到会签节点的审核者,请查看流程设计是否有问题!")); + throw (new Exception("޷Ѱҵǩڵ,鿴Ƿ!")); } else if (_makerList == "1") { - throw (new Exception("会签节点的审核者不能为所有人,请查看流程设计是否有问题!")); + throw (new Exception("ǩڵ߲Ϊ,鿴Ƿ!")); } else { @@ -853,7 +825,7 @@ namespace OpenAuth.App makerList = GetMakerList(wfruntime.runtimeModel.nextNode, wfruntime.runtimeModel.processId); if (makerList == "-1") { - throw (new Exception("无法寻找到节点的审核者,请查看流程设计是否有问题!")); + throw (new Exception("޷Ѱҵڵ,鿴Ƿ!")); } } @@ -865,7 +837,7 @@ namespace OpenAuth.App } } /// - /// 寻找该节点执行人 + /// ѰҸýڵִ /// /// /// @@ -881,11 +853,11 @@ namespace OpenAuth.App } else { - if (node.setInfo.NodeDesignate.Value == "NodeDesignateType1")//所有成员 + if (node.setInfo.NodeDesignate.Value == "NodeDesignateType1")//гԱ { makerlsit = "1"; } - else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType2")//指定成员 + else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType2")//ָԱ { makerlsit = ArrwyToString(node.setInfo.NodeDesignateData.role, makerlsit); makerlsit = ArrwyToString(node.setInfo.NodeDesignateData.post, makerlsit); @@ -897,7 +869,7 @@ namespace OpenAuth.App makerlsit = "-1"; } } - //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType3")//发起者领导 + //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType3")//쵼 //{ // UserEntity userEntity = userService.GetEntity(OperatorProvider.Provider.Current().UserId); // if (string.IsNullOrEmpty(userEntity.ManagerId)) @@ -909,9 +881,9 @@ namespace OpenAuth.App // makerlsit = userEntity.ManagerId; // } //} - //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType4")//前一步骤领导 + //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType4")//ǰһ쵼 //{ - // WFProcessTransitionHistory transitionHistoryEntity = wfProcessTransitionHistoryService.GetEntity(processId, node.id.Value); + // FlowInstanceTransitionHistory transitionHistoryEntity = FlowInstanceTransitionHistoryService.GetEntity(processId, node.id.Value); // UserEntity userEntity = userService.GetEntity(transitionHistoryEntity.CreateUserId); // if (string.IsNullOrEmpty(userEntity.ManagerId)) // { @@ -922,7 +894,7 @@ namespace OpenAuth.App // makerlsit = userEntity.ManagerId; // } //} - //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType5")//发起者部门领导 + //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType5")//߲쵼 //{ // UserEntity userEntity = userService.GetEntity(OperatorProvider.Provider.Current().UserId); // DepartmentEntity departmentEntity = departmentService.GetEntity(userEntity.DepartmentId); @@ -936,7 +908,7 @@ namespace OpenAuth.App // makerlsit = departmentEntity.ManagerId; // } //} - //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType6")//发起者公司领导 + //else if (node.setInfo.NodeDesignate.Value == "NodeDesignateType6")//߹˾쵼 //{ // UserEntity userEntity = userService.GetEntity(OperatorProvider.Provider.Current().UserId); // OrganizeEntity organizeEntity = organizeService.GetEntity(userEntity.OrganizeId); @@ -959,7 +931,7 @@ namespace OpenAuth.App } } /// - /// 将数组转化成逗号相隔的字串 + /// תɶִ /// /// /// @@ -978,18 +950,18 @@ namespace OpenAuth.App return resStr; } - public WFProcessScheme GetProcessSchemeEntity(string keyValue) + public FlowInstanceScheme GetProcessSchemeEntity(string keyValue) { - return _unitWork.FindSingle(u => u.Id == keyValue); + return UnitWork.FindSingle(u => u.Id == keyValue); } /// - /// 已办流程进度查看,根据当前访问人的权限查看表单内容 - /// 李玉宝于2017-01-20 15:35:13 + /// Ѱ̽Ȳ鿴ݵǰ˵Ȩ޲鿴 + /// 2017-01-20 15:35:13 /// /// The key value. - /// WFProcessScheme. - public WFProcessScheme GetProcessSchemeByUserId(string keyValue) + /// FlowInstanceScheme. + public FlowInstanceScheme GetProcessSchemeByUserId(string keyValue) { var entity = GetProcessSchemeEntity(keyValue); entity.SchemeContent = GetProcessSchemeContentByUserId(entity.SchemeContent, AuthUtil.GetCurrentUser().User.Id.ToString()); @@ -998,27 +970,27 @@ namespace OpenAuth.App /// - /// 已办流程进度查看,根据当前节点的权限查看表单内容 - /// 李玉宝于2017-01-20 15:34:35 + /// Ѱ̽Ȳ鿴ݵǰڵȨ޲鿴 + /// 2017-01-20 15:34:35 /// /// The key value. /// The node identifier. - /// WFProcessScheme. - public WFProcessScheme GetProcessSchemeEntityByNodeId(string keyValue, string nodeId) + /// FlowInstanceScheme. + public FlowInstanceScheme GetProcessSchemeEntityByNodeId(string keyValue, string nodeId) { var entity = GetProcessSchemeEntity(keyValue); entity.SchemeContent = GetProcessSchemeContentByNodeId(entity.SchemeContent, nodeId); return entity; } - public WFProcessInstance GetProcessInstanceEntity(string keyValue) + public FlowInstance GetProcessInstanceEntity(string keyValue) { - return _unitWork.FindSingle(u => u.Id == keyValue); + return UnitWork.FindSingle(u => u.Id == keyValue); } /// - /// 审核流程 - /// 李玉宝于2017-01-20 15:44:45 + /// + /// 2017-01-20 15:44:45 /// /// The process identifier. /// The verification data. @@ -1028,7 +1000,7 @@ namespace OpenAuth.App { dynamic verificationDataJson = verificationData.ToJson(); - //驳回 + // if (verificationDataJson.VerificationFinally.Value == "3") { string _nodeId = ""; @@ -1038,11 +1010,11 @@ namespace OpenAuth.App } NodeReject(processId, _nodeId, verificationDataJson.VerificationOpinion.Value); } - else if (verificationDataJson.VerificationFinally.Value == "2")//表示不同意 + else if (verificationDataJson.VerificationFinally.Value == "2")//ʾͬ { NodeVerification(processId, false, verificationDataJson.VerificationOpinion.Value); } - else if (verificationDataJson.VerificationFinally.Value == "1")//表示同意 + else if (verificationDataJson.VerificationFinally.Value == "1")//ʾͬ { NodeVerification(processId, true, verificationDataJson.VerificationOpinion.Value); } @@ -1052,5 +1024,43 @@ namespace OpenAuth.App throw; } } + + + public void Add(FlowInstance flowScheme) + { + Repository.Add(flowScheme); + } + + public void Update(FlowInstance flowScheme) + { + Repository.Update(u => u.Id == flowScheme.Id, u => new FlowInstance + { + //todo:Ҫ޸ĵ + }); + } + + public TableData Load(QueryFlowInstanceListReq request) + { + //todo:/Ѱ/ҵ + var result = new TableData(); + + result.count = UnitWork.Find(u => u.CreateUserId == request.userid).Count(); + if (request.type == "inbox") // + { + result.data = UnitWork.Find(request.page, request.limit, "CreateDate descending", null).ToList(); + + } + else if (request.type == "outbox") //Ѱ + { + result.data = UnitWork.Find(request.page, request.limit, "CreateDate descending", null).ToList(); + + } + else //ҵ + { + result.data = UnitWork.Find(request.page, request.limit, "CreateDate descending", null).ToList(); + } + + return result; + } } } diff --git a/OpenAuth.App/FlowSchemeApp.cs b/OpenAuth.App/FlowSchemeApp.cs new file mode 100644 index 00000000..baf0c467 --- /dev/null +++ b/OpenAuth.App/FlowSchemeApp.cs @@ -0,0 +1,113 @@ +using System; +using System.Linq; +using OpenAuth.App.Request; +using OpenAuth.App.Response; +using OpenAuth.Repository.Domain; + +namespace OpenAuth.App +{ + /// + /// 流程设计服务 + /// 李玉宝新增于2017-01-16 16:18:35 + /// + public class FlowSchemeApp :BaseApp + { + /// + /// 保存流程 + /// + /// 表单模板实体类 + /// 主键 + /// + public int SaveForm(string keyValue, FlowScheme entity, FlowSchemeDetail modelentity) + { + if (string.IsNullOrEmpty(keyValue)) + { + entity.SchemeVersion = DateTime.Now.ToString("yyyyMMddHHmmssffff"); + UnitWork.Add(entity); + + modelentity.SchemeId = entity.Id; + modelentity.SchemeVersion = entity.SchemeVersion; + UnitWork.Add(modelentity); + } + else + { + string schemeid = (string)(keyValue); + FlowSchemeDetail modelentityold = + UnitWork.FindSingle(u => u.SchemeVersion == entity.SchemeVersion + && u.SchemeId == schemeid); + + if (modelentityold.SchemeContent != modelentity.SchemeContent) + { + if (modelentity.SchemeVersion == "cg") + { + modelentityold.SchemeContent = modelentity.SchemeContent; + modelentityold.SchemeVersion = DateTime.Now.ToString("yyyyMMddHHmmssffff"); + modelentity.SchemeVersion = modelentityold.SchemeVersion; + UnitWork.Update(modelentityold); + } + else + { + modelentity.SchemeId = schemeid; + modelentity.SchemeVersion = DateTime.Now.ToString("yyyyMMddHHmmssffff"); + UnitWork.Add(modelentity); + } + } + else + { + modelentity.SchemeVersion = modelentityold.SchemeVersion; + } + entity.Id = keyValue; + entity.SchemeVersion = modelentity.SchemeVersion; + UnitWork.Update(entity); + } + + UnitWork.Save(); + return 1; + } + + public void RemoveForm(string[] keyValue) + { + UnitWork.Delete(u =>keyValue.Contains(u.Id)); + UnitWork.Delete(u =>keyValue.Contains(u.SchemeId)); + } + + public FlowScheme GetEntity(string keyValue) + { + return UnitWork.FindSingle(u => u.Id == keyValue); + } + + public FlowSchemeDetail GetSchemeEntity(string schemeinfoId, string schemeinfoSchemeVersion) + { + return UnitWork.FindSingle(u => + u.SchemeId == schemeinfoId && u.SchemeVersion == schemeinfoSchemeVersion); + } + + public void UpdateState(string keyValue, int state) + { + throw new NotImplementedException(); + } + + + public void Add(FlowScheme flowScheme) + { + Repository.Add(flowScheme); + } + + public void Update(FlowScheme flowScheme) + { + UnitWork.Update(u => u.Id == flowScheme.Id, u => new FlowScheme + { + //todo:要修改的 + }); + } + + public TableData Load(QueryFlowSchemeListReq request) + { + return new TableData + { + count = Repository.GetCount(null), + data = Repository.Find(request.page, request.limit, "CreateDate desc") + }; + } + } +} diff --git a/OpenAuth.App/OpenAuth.App.csproj b/OpenAuth.App/OpenAuth.App.csproj index a151baf5..a2fbb65b 100644 --- a/OpenAuth.App/OpenAuth.App.csproj +++ b/OpenAuth.App/OpenAuth.App.csproj @@ -115,6 +115,8 @@ + + @@ -122,8 +124,8 @@ - - + + diff --git a/OpenAuth.App/Request/QueryFlowInstanceListReq.cs b/OpenAuth.App/Request/QueryFlowInstanceListReq.cs new file mode 100644 index 00000000..df843870 --- /dev/null +++ b/OpenAuth.App/Request/QueryFlowInstanceListReq.cs @@ -0,0 +1,8 @@ +namespace OpenAuth.App.Request +{ + public class QueryFlowInstanceListReq : PageReq + { + public string type { get; set; } + public string userid { get; set; } + } +} diff --git a/OpenAuth.App/Request/QueryFlowSchemeListReq.cs b/OpenAuth.App/Request/QueryFlowSchemeListReq.cs new file mode 100644 index 00000000..6b36d215 --- /dev/null +++ b/OpenAuth.App/Request/QueryFlowSchemeListReq.cs @@ -0,0 +1,7 @@ +namespace OpenAuth.App.Request +{ + public class QueryFlowSchemeListReq : PageReq + { + public string orgId { get; set; } + } +} diff --git a/OpenAuth.App/WFSchemeService.cs b/OpenAuth.App/WFSchemeService.cs deleted file mode 100644 index 56c29745..00000000 --- a/OpenAuth.App/WFSchemeService.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using OpenAuth.App.Response; -using OpenAuth.Repository.Domain; -using OpenAuth.Repository.Interface; - -namespace OpenAuth.App -{ - /// - /// 流程设计服务 - /// 李玉宝新增于2017-01-16 16:18:35 - /// - public class WFSchemeService - { - public IUnitWork _unitWork { get; set; } - - /// - /// 保存流程 - /// - /// 表单模板实体类 - /// 主键 - /// - public int SaveForm(string keyValue, WFSchemeInfo entity, WFSchemeContent modelentity) - { - try - { - if (string.IsNullOrEmpty(keyValue)) - { - entity.SchemeVersion = DateTime.Now.ToString("yyyyMMddHHmmssffff"); - _unitWork.Add(entity); - - modelentity.SchemeInfoId = entity.Id; - modelentity.SchemeVersion = entity.SchemeVersion; - _unitWork.Add(modelentity); - } - else - { - string schemeid = (string)(keyValue); - WFSchemeContent modelentityold = - _unitWork.FindSingle(u => u.SchemeVersion == entity.SchemeVersion - && u.SchemeInfoId == schemeid); - - if (modelentityold.SchemeContent != modelentity.SchemeContent) - { - if (modelentity.SchemeVersion == "cg") - { - modelentityold.SchemeContent = modelentity.SchemeContent; - modelentityold.SchemeVersion = DateTime.Now.ToString("yyyyMMddHHmmssffff"); - modelentity.SchemeVersion = modelentityold.SchemeVersion; - _unitWork.Update(modelentityold); - } - else - { - modelentity.SchemeInfoId = schemeid; - modelentity.SchemeVersion = DateTime.Now.ToString("yyyyMMddHHmmssffff"); - _unitWork.Add(modelentity); - } - } - else - { - modelentity.SchemeVersion = modelentityold.SchemeVersion; - } - entity.Id = keyValue; - entity.SchemeVersion = modelentity.SchemeVersion; - _unitWork.Update(entity); - } - - _unitWork.Save(); - return 1; - } - catch (Exception) - { - throw; - } - } - - public void RemoveForm(string[] keyValue) - { - _unitWork.Delete(u =>keyValue.Contains(u.Id)); - _unitWork.Delete(u =>keyValue.Contains(u.SchemeInfoId)); - } - - public WFSchemeInfo GetEntity(string keyValue) - { - return _unitWork.FindSingle(u => u.Id == keyValue); - } - - public WFSchemeContent GetSchemeEntity(string schemeinfoId, string schemeinfoSchemeVersion) - { - return _unitWork.FindSingle(u => - u.SchemeInfoId == schemeinfoId && u.SchemeVersion == schemeinfoSchemeVersion); - } - - public void UpdateState(string keyValue, int state) - { - throw new NotImplementedException(); - } - - public List GetList() - { - return _unitWork.Find(null).ToList(); - } - - public TableData Load(int pageCurrent, int pageSize) - { - var result = new TableData(); - - result.count = _unitWork.Find(null).Count(); - result.data = _unitWork.Find(pageCurrent, pageSize, "ModifyDate descending", null).ToList(); - - return result; - } - } -} diff --git a/OpenAuth.Mvc/Areas/FlowManage/Controllers/FileController.cs b/OpenAuth.Mvc/Areas/FlowManage/Controllers/FileController.cs deleted file mode 100644 index 2f0cd064..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Controllers/FileController.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Configuration; -using System.IO; -using System.Web; -using System.Web.Mvc; -using Infrastructure; -using OpenAuth.Mvc.Controllers; - -namespace OpenAuth.Mvc.Areas.FlowManage.Controllers -{ - public class FileController : BaseController - { - - [HttpPost] - public string Add(HttpPostedFileBase Filedata) - { - var response = new Response(); - if (Filedata != null && Filedata.ContentLength > 0 && Filedata.ContentLength < 10485760) - { - using (var binaryReader = new BinaryReader(Filedata.InputStream)) - { - var fileName = Path.GetFileName(Filedata.FileName); - var data = binaryReader.ReadBytes(Filedata.ContentLength); - var result = UploadFile(fileName, data, string.Empty); - response.Result = result; - } - } - else - { - response.Message = "文件过大"; - response.Code = 500; - } - - return JsonHelper.Instance.Serialize(response); - - } - - private string UploadFile(string fileName, byte[] fileBuffers, string folder) - { - if (string.IsNullOrEmpty(folder)) - { - folder = DateTime.Now.ToString("yyyy_MM_dd"); - } - - //判断文件是否为空 - if (string.IsNullOrEmpty(fileName)) - { - throw new Exception("文件名不能为空"); - } - - //判断文件是否为空 - if (fileBuffers.Length < 1) - { - throw new Exception("文件不能为空"); - } - - - var filePath =Server.MapPath("upload"); - var uploadPath = filePath +"\\" + folder + "\\"; - var ext = Path.GetExtension(fileName); - var newName = Guid.NewGuid().ToString("N") + ext; - - if (!Directory.Exists(uploadPath)) - { - Directory.CreateDirectory(uploadPath); - } - using (var fs = new FileStream(uploadPath + newName, FileMode.Create)) - { - fs.Write(fileBuffers, 0, fileBuffers.Length); - fs.Close(); - return folder + "/" + newName; - } - - } - } -} \ No newline at end of file diff --git a/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowDesignController.cs b/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowDesignController.cs deleted file mode 100644 index 275483b5..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowDesignController.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Web.Mvc; -using System.Web.UI.WebControls; -using Infrastructure; -using OpenAuth.App; -using OpenAuth.App.SSO; -using OpenAuth.Mvc.Controllers; -using OpenAuth.Repository.Domain; - -namespace OpenAuth.Mvc.Areas.FlowManage.Controllers -{ - - /// - /// 流程设计 - /// 李玉宝新增于2017-01-12 19:41:56 - /// - public class FlowDesignController :BaseController - { - public WFSchemeService WfFlowInfoBll { get; set; } - - #region 视图功能 - /// - /// 管理 - /// - /// - [HttpGet] - public ActionResult Index() - { - return View(); - } - - /// - /// 预览 - /// - /// - [HttpGet] - public ActionResult PreviewIndex() - { - return View(); - } - - - /// - /// 表单 - /// - /// - [HttpGet] - public ActionResult Form() - { - return View(); - } - /// - /// 节点设置 - /// - /// - [HttpGet] - public ActionResult FlowNodeForm() - { - return View(); - } - /// - /// 连接线设置 - /// - /// - [HttpGet] - public ActionResult FlowLineForm() - { - return View(); - } - /// - /// 流程创建 - /// - /// - [HttpGet] - public ActionResult FlowSchemeBuider() - { - return View(); - } - #endregion - - #region 获取数据 - - /// - /// 设置流程 - /// - /// 主键 - /// - [HttpGet] - public ActionResult GetFormJson(string keyValue) - { - var schemeinfo = WfFlowInfoBll.GetEntity(keyValue); - var schemecontent = WfFlowInfoBll.GetSchemeEntity(schemeinfo.Id, schemeinfo.SchemeVersion); - var JsonData = new - { - schemeinfo = schemeinfo, - schemecontent = schemecontent - }; - return Content(JsonData.ToJson()); - } - /// - /// 获取工作流流程模板内容 - /// - /// - /// - /// - [HttpGet] - public ActionResult GetSchemeContentJson(string keyValue, string SchemeVersion) - { - var schemecontent = WfFlowInfoBll.GetSchemeEntity(keyValue, SchemeVersion); - return Content(schemecontent.ToJson()); - } - #endregion - - #region 提交数据 - /// - /// 删除表单模板 - /// - /// 主键值 - /// - [HttpPost] - public string RemoveForm(string[] ids) - { - WfFlowInfoBll.RemoveForm(ids); - return Result.ToJson(); - } - /// - /// 保存用户表单(新增、修改) - /// - /// 主键值 - /// 用户实体 - /// - [HttpPost] - public string SaveForm(string keyValue, string InfoEntity, string ContentEntity, string shcemeAuthorizeData) - { - WFSchemeInfo entyity = InfoEntity.ToObject(); - WFSchemeContent contententity = ContentEntity.ToObject(); - WfFlowInfoBll.SaveForm(keyValue, entyity, contententity); - return Result.ToJson(); - } - /// - /// (启用、禁用) - /// - /// 主键值 - /// 状态:1-启动;0-禁用 - /// - [HttpPost] - - public ActionResult SubmitUpdateState(string keyValue, int State) - { - WfFlowInfoBll.UpdateState(keyValue, State); - return Content("操作成功。"); - } - - public string Load(int pageCurrent = 1, int pageSize = 30) - { - return JsonHelper.Instance.Serialize(WfFlowInfoBll.Load(pageCurrent, pageSize)); - } - #endregion - - - } -} diff --git a/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowInstancesController.cs b/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowInstancesController.cs deleted file mode 100644 index 02f108df..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowInstancesController.cs +++ /dev/null @@ -1,230 +0,0 @@ -using Infrastructure; -using OpenAuth.App; -using OpenAuth.App.SSO; -using OpenAuth.Mvc.Controllers; -using System; -using System.Web.Mvc; -using OpenAuth.Repository.Domain; - -namespace OpenAuth.Mvc.Areas.FlowManage.Controllers -{ - /// - /// 通用申请流程处理 - /// 李玉宝新增于2016-09-08 19:21:59 - /// - public class FlowInstancesController : BaseController - { - public WFProcessInstanceService App { get; set; } - - #region 视图 - - public ActionResult Index() - { - return View(); - } - - /// - /// 进度查看 - /// - /// - [HttpGet] - public ActionResult ProcessLookForm() - { - return View(); - } - - /// - /// 审核流程 - /// - /// - [HttpGet] - public ActionResult VerificationForm() - { - return View(); - } - - /// - /// 创建流程实例视图 - /// - /// - [HttpGet] - public ActionResult FlowProcessNewForm() - { - return View(); - } - - /// - /// 流程监控 - /// - /// - [HttpGet] - public ActionResult MonitoringIndex() - { - return View(); - } - - /// - /// 流程指派 - /// - /// - [HttpGet] - public ActionResult DesignationIndex() - { - return View(); - } - - /// - /// 流程进度查看 - /// - /// \ - [HttpGet] - public ActionResult ProcessLookFrom() - { - return View(); - } - - /// - /// 流程指派 - /// - /// - [HttpGet] - public ActionResult ProcessDesignate() - { - return View(); - } - - #endregion 视图 - - #region 提交数据 - - /// - /// 创建流程实例 - /// - /// 流程模板信息Id - /// 表单数据 - /// 0发起,3草稿 - /// - [HttpPost] - public string CreateProcess(string wfSchemeInfoId, string wfProcessInstanceJson, string frmData) - { - WFProcessInstance wfProcessInstanceEntity = wfProcessInstanceJson.ToObject(); - wfProcessInstanceEntity.Id = string.Empty; - - App.CreateInstance(Guid.NewGuid().ToString(), wfSchemeInfoId, wfProcessInstanceEntity, frmData); - - return Result.ToJson(); - } - - /// - /// 审核流程 - /// - /// 工作流实例主键Id - /// 审核数据 - /// - [HttpPost] - public string VerificationProcess(string processId, string verificationData) - { - App.VerificationProcess(processId, verificationData); - return Result.ToJson(); - } - - /// - /// 删除申请 - /// - public string Delete(string[] ids) - { - try - { - foreach (var id in ids) - { - App.DeleteProcess(id); - } - return Result.ToJson(); - } - catch (Exception e) - { - Result.Code = 500; - Result.Message = e.Message; - return Result.ToJson(); - } - } - - #endregion 提交数据 - - #region 获取数据(公用) - - /// - /// 获取进程模板Json - /// - /// - /// - [HttpGet] - public ActionResult GetProcessSchemeJson(string keyValue) - { - var data = App.GetProcessSchemeEntity(keyValue); - return Content(data.ToJson()); - } - - /// - /// 已办流程进度查看,根据当前访问人的权限查看表单内容 - /// - /// - /// - [HttpGet] - public ActionResult GetProcessSchemeEntityByUserId(string keyValue) - { - var data = App.GetProcessSchemeByUserId(keyValue); - return Content(data.ToJson()); - } - - /// - /// 已办流程进度查看,根据当前节点的权限查看表单内容 - /// - /// - /// - /// - [HttpGet] - public ActionResult GetProcessSchemeEntityByNodeId(string keyValue, string nodeId) - { - var data = App.GetProcessSchemeEntityByNodeId(keyValue, nodeId); - return Content(data.ToJson()); - } - - /// - /// 获取进程信息 - /// - /// - /// - [HttpGet] - public ActionResult GetProcessInfoJson(string keyValue) - { - var processInstance = App.GetProcessInstanceEntity(keyValue); - var processScheme = App.GetProcessSchemeEntity(processInstance.ProcessSchemeId); - var JsonData = new - { - processInstance = processInstance, - processScheme = processScheme - }; - return Content(JsonData.ToJson()); - } - - /// - /// 获取进程实例 - /// - /// - /// - [HttpGet] - public ActionResult GetProcessInstanceJson(string keyValue) - { - var processInstance = App.GetProcessInstanceEntity(keyValue); - return Content(processInstance.ToJson()); - } - - public string Load(string type, int pageCurrent = 1, int pageSize = 30) - { - return JsonHelper.Instance.Serialize(App.Load(AuthUtil.GetCurrentUser().User.Id.ToString(), type, pageCurrent, pageSize)); - } - - #endregion 获取数据(公用) - } -} \ No newline at end of file diff --git a/OpenAuth.Mvc/Areas/FlowManage/FlowManageAreaRegistration.cs b/OpenAuth.Mvc/Areas/FlowManage/FlowManageAreaRegistration.cs deleted file mode 100644 index ffa1b064..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/FlowManageAreaRegistration.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Web.Mvc; - -namespace OpenAuth.Mvc.Areas.FlowManage -{ - public class FlowManageAreaRegistration : AreaRegistration - { - public override string AreaName - { - get - { - return "FlowManage"; - } - } - - public override void RegisterArea(AreaRegistrationContext context) - { - context.MapRoute( - "FlowManage_default", - "FlowManage/{controller}/{action}/{id}", - new { action = "Index", id = UrlParameter.Optional } - ); - } - } -} \ No newline at end of file diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowLineForm.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowLineForm.cshtml deleted file mode 100644 index 165fa2c1..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowLineForm.cshtml +++ /dev/null @@ -1,207 +0,0 @@ -@{ - ViewBag.Title = "流转条件设置"; - Layout = "~/Views/Shared/_Form.cshtml"; -} - - - - - - -
-
- - -
-
-
-
-
-
-
-
-
- - diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowNodeForm.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowNodeForm.cshtml deleted file mode 100644 index a25b7b76..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowNodeForm.cshtml +++ /dev/null @@ -1,415 +0,0 @@ -@{ - ViewBag.Title = "工作流节点设置"; - Layout = "~/Views/Shared/_Form.cshtml"; -} - - - - -
-
- - - - - - - - - - - - - - - - - - - - - @* - *@ - - - - - - - - - - - - - - -
节点标识 - - 节点名称* - -
绑定表名* -
-
-
绑定字段* -
-
驳回类型* -
-
驳回步骤 -
-
由谁执行* -
-
选项 -
-
会签策略* -
-
会签比例 - -
- 备注 - - -
-
-
-
-
-
- @*
-
-
-
*@ -
-
-
-
- 角色 -
-
- 用户 -
-
-
- - - -
-
-
  角色
-
-
-
  岗位
-
-
-
  用户组
-
-
-
  用户
-
-
-
-
-
-
-
-   表单权限配置(默认都是勾选的) -
-
-
-
-
-
-
-
- -
-
-
- diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowSchemeBuider.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowSchemeBuider.cshtml deleted file mode 100644 index f75c2733..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/FlowSchemeBuider.cshtml +++ /dev/null @@ -1,423 +0,0 @@ -@{ - ViewBag.Title = "流程设计器"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - - -
-
-
    -
  • 1基本配置
  • -
  • 2表单选择
  • -
  • 3流程设计
  • -
  • 4创建完成
  • -
-
-
-
-
- - 请你创建流程信息,用于创建或修改流程! -
- -
-
-

流程基本信息配置

-
-
- - - - - - - - - - - - - -
流程编号* - -
流程名称* - -
- 备注 - - -
-
-
-
- -
-
-
-
-
- - 注:1、请在左侧选择需要绑定表单。2、可编辑表单(此编辑只作用与当前流程)。 -
- -
-
- 编辑表单 -
- - -
表单预览
-
-
-
-
-
-
-
-
-
-
- -

设计完成,请点击保存

-
-
-
- -
- diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/Index.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/Index.cshtml deleted file mode 100644 index 24834c6f..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/Index.cshtml +++ /dev/null @@ -1,41 +0,0 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; -} - - - - -
-
-
-
-
- @Html.Action("MenuHeader", "Home", new {area=""}) -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - - diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/PreviewIndex.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/PreviewIndex.cshtml deleted file mode 100644 index 87965809..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowDesign/PreviewIndex.cshtml +++ /dev/null @@ -1,113 +0,0 @@ -@{ - ViewBag.Title = "流程预览"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - - - - -
- -
-
- diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/FlowProcessNewForm.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/FlowProcessNewForm.cshtml deleted file mode 100644 index b66092e3..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/FlowProcessNewForm.cshtml +++ /dev/null @@ -1,156 +0,0 @@ -@{ - ViewBag.Title = "发起流程"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - -
-
-
-
-
-
填写左侧表单和实例信息,提交创建
- - - - - - - - - - - - - - - - - - - - - - - - - -
流程实例编号*
- -
自定义标题*
- -
重要等级*
-
-
-
-
备注
- -
- -
- - diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/Index.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/Index.cshtml deleted file mode 100644 index 4af176d3..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/Index.cshtml +++ /dev/null @@ -1,56 +0,0 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; -} - - - - - -
-
-
-
-
-
-
-
-
-
    -
    -
    -
    -
    -
    -
    -
    - @Html.Action("MenuHeader", "Home", new {area=""}) -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - - diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/ProcessLookForm.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/ProcessLookForm.cshtml deleted file mode 100644 index 69edba94..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/ProcessLookForm.cshtml +++ /dev/null @@ -1,48 +0,0 @@ -@{ - ViewBag.Title = "查看流程进度"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - - - - -
    -
    -
    -
    -
    -
    diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/VerificationForm.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/VerificationForm.cshtml deleted file mode 100644 index d2c524cd..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FlowInstances/VerificationForm.cshtml +++ /dev/null @@ -1,223 +0,0 @@ -@using OpenAuth.App.SSO -@{ - ViewBag.Title = "审核流程"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    在此填写内容,提交审核
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    申请人员
    - - -
    申请备注
    - -
    审核人员*
    - -
    审核结果*
    -
    -
    -
    -
    审核意见
    - -
    - -
    - - diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FormPreview.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FormPreview.cshtml deleted file mode 100644 index e2474332..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FormPreview.cshtml +++ /dev/null @@ -1,36 +0,0 @@ -@{ - ViewBag.Title = "表单预览"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - -
    -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FrmBuider.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FrmBuider.cshtml deleted file mode 100644 index 22a7189f..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/FrmBuider.cshtml +++ /dev/null @@ -1,238 +0,0 @@ -@{ - ViewBag.Title = "表单创建"; - Layout = "~/Views/Shared/_FlowForm.cshtml"; -} - - -
    -
    -
      -
    • 1基本配置
    • -
    • 2表单设计
    • -
    • 3创建完成
    • -
    -
    -
    -
    -
    - - 请你填写表单信息,用于创建或修改表单! -
    -
    -
    -

    表单基本信息配置

    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    表单编号* - -
    表单名称* - -
    是否建表* -
    -
    -
    - 备注 - - -
    -
    -
    -
    -
    -
    -
    -
    -
    - -

    设计完成,请点击保存

    -
    -
    -
    - -
    diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/Index.cshtml b/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/Index.cshtml deleted file mode 100644 index af9dc976..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/FormDesign/Index.cshtml +++ /dev/null @@ -1,41 +0,0 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; -} - - - - -
    -
    -
    -
    -
    - @Html.Action("MenuHeader", "Home", new {area=""}) -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - - diff --git a/OpenAuth.Mvc/Areas/FlowManage/Views/web.config b/OpenAuth.Mvc/Areas/FlowManage/Views/web.config deleted file mode 100644 index cf0d3034..00000000 --- a/OpenAuth.Mvc/Areas/FlowManage/Views/web.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/FlowInstancesController.cs b/OpenAuth.Mvc/Controllers/FlowInstancesController.cs new file mode 100644 index 00000000..5678c29f --- /dev/null +++ b/OpenAuth.Mvc/Controllers/FlowInstancesController.cs @@ -0,0 +1,81 @@ +using System; +using System.Web.Http; +using System.Web.Mvc; +using Infrastructure; +using OpenAuth.App; +using OpenAuth.App.Request; +using OpenAuth.Mvc.Models; +using OpenAuth.Repository.Domain; + +namespace OpenAuth.Mvc.Controllers +{ + public class FlowInstancesController : BaseController + { + public FlowInstanceApp App { get; set; } + + // + [Authenticate] + public ActionResult Index() + { + return View(); + } + + //添加或修改 + [System.Web.Mvc.HttpPost] + public string Add(FlowInstance obj) + { + try + { + App.Add(obj); + + } + catch (Exception ex) + { + Result.Code = 500; + Result.Message = ex.Message; + } + return JsonHelper.Instance.Serialize(Result); + } + + //添加或修改 + [System.Web.Mvc.HttpPost] + public string Update(FlowInstance obj) + { + try + { + App.Update(obj); + + } + catch (Exception ex) + { + Result.Code = 500; + Result.Message = ex.Message; + } + return JsonHelper.Instance.Serialize(Result); + } + + /// + /// 加载列表 + /// + public string Load([FromUri]QueryFlowInstanceListReq request) + { + return JsonHelper.Instance.Serialize(App.Load(request)); + } + + [System.Web.Mvc.HttpPost] + public string Delete(string[] ids) + { + try + { + App.Delete(ids); + } + catch (Exception e) + { + Result.Code = 500; + Result.Message = e.Message; + } + + return JsonHelper.Instance.Serialize(Result); + } + } +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Controllers/FlowSchemesController.cs b/OpenAuth.Mvc/Controllers/FlowSchemesController.cs new file mode 100644 index 00000000..64f94a06 --- /dev/null +++ b/OpenAuth.Mvc/Controllers/FlowSchemesController.cs @@ -0,0 +1,81 @@ +using System; +using System.Web.Http; +using System.Web.Mvc; +using Infrastructure; +using OpenAuth.App; +using OpenAuth.App.Request; +using OpenAuth.Mvc.Models; +using OpenAuth.Repository.Domain; + +namespace OpenAuth.Mvc.Controllers +{ + public class FlowSchemesController : BaseController + { + public FlowSchemeApp App { get; set; } + + // + [Authenticate] + public ActionResult Index() + { + return View(); + } + + //添加或修改 + [System.Web.Mvc.HttpPost] + public string Add(FlowScheme obj) + { + try + { + App.Add(obj); + + } + catch (Exception ex) + { + Result.Code = 500; + Result.Message = ex.Message; + } + return JsonHelper.Instance.Serialize(Result); + } + + //添加或修改 + [System.Web.Mvc.HttpPost] + public string Update(FlowScheme obj) + { + try + { + App.Update(obj); + + } + catch (Exception ex) + { + Result.Code = 500; + Result.Message = ex.Message; + } + return JsonHelper.Instance.Serialize(Result); + } + + /// + /// 加载列表 + /// + public string Load([FromUri]QueryFlowSchemeListReq request) + { + return JsonHelper.Instance.Serialize(App.Load(request)); + } + + [System.Web.Mvc.HttpPost] + public string Delete(string[] ids) + { + try + { + App.Delete(ids); + } + catch (Exception e) + { + Result.Code = 500; + Result.Message = e.Message; + } + + return JsonHelper.Instance.Serialize(Result); + } + } +} \ No newline at end of file diff --git a/OpenAuth.Mvc/OpenAuth.Mvc.csproj b/OpenAuth.Mvc/OpenAuth.Mvc.csproj index e87c5063..890d1ada 100644 --- a/OpenAuth.Mvc/OpenAuth.Mvc.csproj +++ b/OpenAuth.Mvc/OpenAuth.Mvc.csproj @@ -142,13 +142,11 @@ - - - - + + @@ -207,6 +205,8 @@ + + @@ -578,18 +578,6 @@ - - - - - - - - - - - - @@ -617,7 +605,6 @@ - @@ -627,11 +614,10 @@ + + - - - - + Designer diff --git a/OpenAuth.Mvc/Views/FlowInstances/Index.cshtml b/OpenAuth.Mvc/Views/FlowInstances/Index.cshtml new file mode 100644 index 00000000..4fd3c76e --- /dev/null +++ b/OpenAuth.Mvc/Views/FlowInstances/Index.cshtml @@ -0,0 +1,181 @@ +@section header +{ + +} + + +
    +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      主键Id流程实例模板Id实例编号自定义名称当前节点ID当前节点类型(0会签节点)当前节点名称前一个ID表单类型流程类型有效标志创建时间创建用户主键创建用户等级实例备注是否完成执行人
      +
      + + + + + + + + + diff --git a/OpenAuth.Mvc/Views/FlowSchemes/Index.cshtml b/OpenAuth.Mvc/Views/FlowSchemes/Index.cshtml new file mode 100644 index 00000000..3f5439e4 --- /dev/null +++ b/OpenAuth.Mvc/Views/FlowSchemes/Index.cshtml @@ -0,0 +1,98 @@ +@section header +{ + +} + + +
      +
        + + + + + + + + + + + + + + + + + + +
        主键Id流程编号流程名称流程内容版本表单类型模板权限类型0所有人,1指定成员排序码有效备注创建时间
        +
        + + + + + + + + + diff --git a/OpenAuth.Mvc/userJs/flowInstances.js b/OpenAuth.Mvc/userJs/flowInstances.js new file mode 100644 index 00000000..2740eaf7 --- /dev/null +++ b/OpenAuth.Mvc/userJs/flowInstances.js @@ -0,0 +1,156 @@ +layui.config({ + base: "/js/" +}).use(['form','vue', 'ztree', 'layer', 'jquery', 'table','droptree','openauth'], function () { + var form = layui.form, + //layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer, + layer = layui.layer, + $ = layui.jquery; + var table = layui.table; + var openauth = layui.openauth; + layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds"); + + //主列表加载,可反复调用进行刷新 + var config= {}; //table的参数,如搜索key,点击tree的id + var mainList = function (options) { + if (options != undefined) { + $.extend(config, options); + } + table.reload('mainList', { + url: '/FlowInstances/Load', + where: config + }); + } + //左边树状机构列表 + var ztree = function () { + var url = '/UserSession/GetOrgs'; + var zTreeObj; + var setting = { + view: { selectedMulti: false }, + data: { + key: { + name: 'Name', + title: 'Name' + }, + simpleData: { + enable: true, + idKey: 'Id', + pIdKey: 'ParentId', + rootPId: 'null' + } + }, + callback: { + onClick: function (event, treeId, treeNode) { + mainList({ orgId: treeNode.Id }); + } + } + }; + var load = function () { + $.getJSON(url, function (json) { + zTreeObj = $.fn.zTree.init($("#tree"), setting); + var newNode = { Name: "根节点", Id: null, ParentId: "" }; + json.push(newNode); + zTreeObj.addNodes(null, json); + mainList({ orgId: "" }); + zTreeObj.expandAll(true); + }); + }; + load(); + return { + reload: load + } + }(); + + //添加(编辑)对话框 + var editDlg = function() { + var vm = new Vue({ + el: "#formEdit" + }); + var update = false; //是否为更新 + var show = function (data) { + var title = update ? "编辑信息" : "添加"; + layer.open({ + title: title, + area: ["500px", "400px"], + type: 1, + content: $('#divEdit'), + success: function() { + vm.$set('$data', data); + }, + end: mainList + }); + var url = "/FlowInstances/Add"; + if (update) { + url = "/FlowInstances/Update"; + } + //提交数据 + form.on('submit(formSubmit)', + function(data) { + $.post(url, + data.field, + function(data) { + layer.msg(data.Message); + }, + "json"); + return false; + }); + } + return { + add: function() { //弹出添加 + update = false; + show({ + Id: '' + }); + }, + update: function(data) { //弹出编辑框 + update = true; + show(data); + } + }; + }(); + + //监听表格内部按钮 + table.on('tool(list)', function (obj) { + var data = obj.data; + if (obj.event === 'detail') { //查看 + layer.msg('ID:' + data.Id + ' 的查看操作'); + } + }); + + + //监听页面主按钮操作 + var active = { + btnDel: function () { //批量删除 + var checkStatus = table.checkStatus('mainList') + , data = checkStatus.data; + openauth.del("/FlowInstances/Delete", + data.map(function (e) { return e.Id; }), + mainList); + } + , btnAdd: function () { //添加 + editDlg.add(); + } + , btnEdit: function () { //编辑 + var checkStatus = table.checkStatus('mainList') + , data = checkStatus.data; + if (data.length != 1) { + layer.msg("请选择编辑的行,且同时只能编辑一行"); + return; + } + editDlg.update(data[0]); + } + + , search: function () { //搜索 + mainList({ key: $('#key').val() }); + } + , btnRefresh: function() { + mainList(); + } + }; + + $('.toolList .layui-btn').on('click', function () { + var type = $(this).data('type'); + active[type] ? active[type].call(this) : ''; + }); + + //监听页面主按钮操作 end +}) \ No newline at end of file diff --git a/OpenAuth.Mvc/userJs/flowSchemes.js b/OpenAuth.Mvc/userJs/flowSchemes.js new file mode 100644 index 00000000..a9cecd5c --- /dev/null +++ b/OpenAuth.Mvc/userJs/flowSchemes.js @@ -0,0 +1,156 @@ +layui.config({ + base: "/js/" +}).use(['form','vue', 'ztree', 'layer', 'jquery', 'table','droptree','openauth'], function () { + var form = layui.form, + //layer = (parent == undefined || parent.layer === undefined )? layui.layer : parent.layer, + layer = layui.layer, + $ = layui.jquery; + var table = layui.table; + var openauth = layui.openauth; + layui.droptree("/UserSession/GetOrgs", "#Organizations", "#OrganizationIds"); + + //主列表加载,可反复调用进行刷新 + var config= {}; //table的参数,如搜索key,点击tree的id + var mainList = function (options) { + if (options != undefined) { + $.extend(config, options); + } + table.reload('mainList', { + url: '/FlowSchemes/Load', + where: config + }); + } + //左边树状机构列表 + var ztree = function () { + var url = '/UserSession/GetOrgs'; + var zTreeObj; + var setting = { + view: { selectedMulti: false }, + data: { + key: { + name: 'Name', + title: 'Name' + }, + simpleData: { + enable: true, + idKey: 'Id', + pIdKey: 'ParentId', + rootPId: 'null' + } + }, + callback: { + onClick: function (event, treeId, treeNode) { + mainList({ orgId: treeNode.Id }); + } + } + }; + var load = function () { + $.getJSON(url, function (json) { + zTreeObj = $.fn.zTree.init($("#tree"), setting); + var newNode = { Name: "根节点", Id: null, ParentId: "" }; + json.push(newNode); + zTreeObj.addNodes(null, json); + mainList({ orgId: "" }); + zTreeObj.expandAll(true); + }); + }; + load(); + return { + reload: load + } + }(); + + //添加(编辑)对话框 + var editDlg = function() { + var vm = new Vue({ + el: "#formEdit" + }); + var update = false; //是否为更新 + var show = function (data) { + var title = update ? "编辑信息" : "添加"; + layer.open({ + title: title, + area: ["500px", "400px"], + type: 1, + content: $('#divEdit'), + success: function() { + vm.$set('$data', data); + }, + end: mainList + }); + var url = "/FlowSchemes/Add"; + if (update) { + url = "/FlowSchemes/Update"; + } + //提交数据 + form.on('submit(formSubmit)', + function(data) { + $.post(url, + data.field, + function(data) { + layer.msg(data.Message); + }, + "json"); + return false; + }); + } + return { + add: function() { //弹出添加 + update = false; + show({ + Id: '' + }); + }, + update: function(data) { //弹出编辑框 + update = true; + show(data); + } + }; + }(); + + //监听表格内部按钮 + table.on('tool(list)', function (obj) { + var data = obj.data; + if (obj.event === 'detail') { //查看 + layer.msg('ID:' + data.Id + ' 的查看操作'); + } + }); + + + //监听页面主按钮操作 + var active = { + btnDel: function () { //批量删除 + var checkStatus = table.checkStatus('mainList') + , data = checkStatus.data; + openauth.del("/FlowSchemes/Delete", + data.map(function (e) { return e.Id; }), + mainList); + } + , btnAdd: function () { //添加 + editDlg.add(); + } + , btnEdit: function () { //编辑 + var checkStatus = table.checkStatus('mainList') + , data = checkStatus.data; + if (data.length != 1) { + layer.msg("请选择编辑的行,且同时只能编辑一行"); + return; + } + editDlg.update(data[0]); + } + + , search: function () { //搜索 + mainList({ key: $('#key').val() }); + } + , btnRefresh: function() { + mainList(); + } + }; + + $('.toolList .layui-btn').on('click', function () { + var type = $(this).data('type'); + active[type] ? active[type].call(this) : ''; + }); + + //监听页面主按钮操作 end +}) \ No newline at end of file diff --git a/OpenAuth.Repository/Domain/WFProcessInstance.cs b/OpenAuth.Repository/Domain/FlowInstance.cs similarity index 74% rename from OpenAuth.Repository/Domain/WFProcessInstance.cs rename to OpenAuth.Repository/Domain/FlowInstance.cs index d9db1814..5386acb3 100644 --- a/OpenAuth.Repository/Domain/WFProcessInstance.cs +++ b/OpenAuth.Repository/Domain/FlowInstance.cs @@ -16,24 +16,32 @@ namespace OpenAuth.Repository.Domain /// /// 工作流流程实例表 /// - public partial class WFProcessInstance : Entity + public partial class FlowInstance : Entity { - public WFProcessInstance() + public FlowInstance() { + this.InstanceSchemeId= string.Empty; this.Code= string.Empty; this.CustomName= string.Empty; this.ActivityId= string.Empty; this.ActivityName= string.Empty; - this.ProcessSchemeId= string.Empty; this.PreviousId= string.Empty; + this.FrmType= 0; this.SchemeType= string.Empty; + this.Disabled= 0; this.CreateDate= DateTime.Now; this.CreateUserId= string.Empty; this.CreateUserName= string.Empty; + this.FlowLevel= 0; this.Description= string.Empty; + this.IsFinish= 0; this.MakerList= string.Empty; } + /// + /// 流程实例模板Id + /// + public string InstanceSchemeId { get; set; } /// /// 实例编号 /// @@ -54,10 +62,6 @@ namespace OpenAuth.Repository.Domain /// 当前节点名称 /// public string ActivityName { get; set; } - /// - /// 流程实例模板Id - /// - public string ProcessSchemeId { get; set; } /// /// 前一个ID /// @@ -65,7 +69,7 @@ namespace OpenAuth.Repository.Domain /// /// 表单类型 /// - public int? FrmType { get; set; } + public int FrmType { get; set; } /// /// 流程类型 /// @@ -73,11 +77,11 @@ namespace OpenAuth.Repository.Domain /// /// 有效标志 /// - public int? EnabledMark { get; set; } + public int Disabled { get; set; } /// /// 创建时间 /// - public System.DateTime? CreateDate { get; set; } + public System.DateTime CreateDate { get; set; } /// /// 创建用户主键 /// @@ -89,7 +93,7 @@ namespace OpenAuth.Repository.Domain /// /// 等级 /// - public int? WfLevel { get; set; } + public int FlowLevel { get; set; } /// /// 实例备注 /// @@ -97,30 +101,11 @@ namespace OpenAuth.Repository.Domain /// /// 是否完成 /// - public int? IsFinish { get; set; } + public int IsFinish { get; set; } /// /// 执行人 /// public string MakerList { get; set; } - - #region 扩展操作 - /// - /// 新增调用 - /// - public void Create() - { - this.CreateDate = DateTime.Now; - } - /// - /// 编辑调用 - /// - /// - public void Modify(string keyValue) - { - this.Id = keyValue; - } - #endregion - } } \ No newline at end of file diff --git a/OpenAuth.Repository/Domain/WFProcessOperationHistory.cs b/OpenAuth.Repository/Domain/FlowInstanceOperationHistory.cs similarity index 80% rename from OpenAuth.Repository/Domain/WFProcessOperationHistory.cs rename to OpenAuth.Repository/Domain/FlowInstanceOperationHistory.cs index 35ab4325..a5ab8276 100644 --- a/OpenAuth.Repository/Domain/WFProcessOperationHistory.cs +++ b/OpenAuth.Repository/Domain/FlowInstanceOperationHistory.cs @@ -16,11 +16,11 @@ namespace OpenAuth.Repository.Domain /// /// 工作流实例操作记录 /// - public partial class WFProcessOperationHistory : Entity + public partial class FlowInstanceOperationHistory : Entity { - public WFProcessOperationHistory() + public FlowInstanceOperationHistory() { - this.ProcessId= string.Empty; + this.InstanceId= string.Empty; this.Content= string.Empty; this.CreateDate= DateTime.Now; this.CreateUserId= string.Empty; @@ -30,7 +30,7 @@ namespace OpenAuth.Repository.Domain /// /// 实例进程Id /// - public string ProcessId { get; set; } + public string InstanceId { get; set; } /// /// 操作内容 /// @@ -38,7 +38,7 @@ namespace OpenAuth.Repository.Domain /// /// 创建时间 /// - public System.DateTime? CreateDate { get; set; } + public System.DateTime CreateDate { get; set; } /// /// 创建用户主键 /// diff --git a/OpenAuth.Repository/Domain/WFProcessScheme.cs b/OpenAuth.Repository/Domain/FlowInstanceScheme.cs similarity index 58% rename from OpenAuth.Repository/Domain/WFProcessScheme.cs rename to OpenAuth.Repository/Domain/FlowInstanceScheme.cs index 8da6da40..befceb3f 100644 --- a/OpenAuth.Repository/Domain/WFProcessScheme.cs +++ b/OpenAuth.Repository/Domain/FlowInstanceScheme.cs @@ -14,15 +14,16 @@ using System.Text; namespace OpenAuth.Repository.Domain { /// - /// 工作流实例模板对应表 + /// 工作流实例模板对应表,防止创建实例后原模板被改 /// - public partial class WFProcessScheme : Entity + public partial class FlowInstanceScheme : Entity { - public WFProcessScheme() + public FlowInstanceScheme() { this.SchemeContent= string.Empty; - this.SchemeInfoId= string.Empty; + this.SchemeId= string.Empty; this.SchemeVersion= string.Empty; + this.ProcessType= 0; } /// @@ -32,7 +33,7 @@ namespace OpenAuth.Repository.Domain /// /// 流程模板ID /// - public string SchemeInfoId { get; set; } + public string SchemeId { get; set; } /// /// 流程内容版本 /// @@ -40,26 +41,7 @@ namespace OpenAuth.Repository.Domain /// /// 类型(0正常,3草稿) /// - public int? ProcessType { get; set; } - - - #region 扩展操作 - /// - /// 新增调用 - /// - public void Create() - { - this.Id = Guid.NewGuid().ToString(); - } - /// - /// 编辑调用 - /// - /// - public void Modify(string keyValue) - { - this.Id = keyValue; - } - #endregion + public int ProcessType { get; set; } } } \ No newline at end of file diff --git a/OpenAuth.Repository/Domain/WFProcessTransitionHistory.cs b/OpenAuth.Repository/Domain/FlowInstanceTransitionHistory.cs similarity index 80% rename from OpenAuth.Repository/Domain/WFProcessTransitionHistory.cs rename to OpenAuth.Repository/Domain/FlowInstanceTransitionHistory.cs index 13cb630d..f9ee3685 100644 --- a/OpenAuth.Repository/Domain/WFProcessTransitionHistory.cs +++ b/OpenAuth.Repository/Domain/FlowInstanceTransitionHistory.cs @@ -16,24 +16,26 @@ namespace OpenAuth.Repository.Domain /// /// 工作流实例流转历史记录 /// - public partial class WFProcessTransitionHistory : Entity + public partial class FlowInstanceTransitionHistory : Entity { - public WFProcessTransitionHistory() + public FlowInstanceTransitionHistory() { - this.ProcessId= string.Empty; + this.InstanceId= string.Empty; this.FromNodeId= string.Empty; this.FromNodeName= string.Empty; this.ToNodeId= string.Empty; this.ToNodeName= string.Empty; + this.TransitionSate= 0; + this.IsFinish= 0; this.CreateDate= DateTime.Now; this.CreateUserId= string.Empty; this.CreateUserName= string.Empty; } /// - /// 实例进程Id + /// 实例Id /// - public string ProcessId { get; set; } + public string InstanceId { get; set; } /// /// 开始节点Id /// @@ -61,15 +63,15 @@ namespace OpenAuth.Repository.Domain /// /// 转化状态 /// - public int? TransitionSate { get; set; } + public int TransitionSate { get; set; } /// /// 是否结束 /// - public int? IsFinish { get; set; } + public int IsFinish { get; set; } /// /// 转化时间 /// - public System.DateTime? CreateDate { get; set; } + public System.DateTime CreateDate { get; set; } /// /// 操作人Id /// diff --git a/OpenAuth.Repository/Domain/WFSchemeInfo.cs b/OpenAuth.Repository/Domain/FlowScheme.cs similarity index 82% rename from OpenAuth.Repository/Domain/WFSchemeInfo.cs rename to OpenAuth.Repository/Domain/FlowScheme.cs index 424b91f6..c32cde63 100644 --- a/OpenAuth.Repository/Domain/WFSchemeInfo.cs +++ b/OpenAuth.Repository/Domain/FlowScheme.cs @@ -16,15 +16,20 @@ namespace OpenAuth.Repository.Domain /// /// 工作流模板信息表 /// - public partial class WFSchemeInfo : Entity + public partial class FlowScheme : Entity { - public WFSchemeInfo() + public FlowScheme() { this.SchemeCode= string.Empty; this.SchemeName= string.Empty; this.SchemeType= string.Empty; this.SchemeVersion= string.Empty; this.SchemeCanUser= string.Empty; + this.FrmType= 0; + this.AuthorizeType= 0; + this.SortCode= 0; + this.DeleteMark= 0; + this.Disabled= 0; this.Description= string.Empty; this.CreateDate= DateTime.Now; this.CreateUserId= string.Empty; @@ -57,23 +62,23 @@ namespace OpenAuth.Repository.Domain /// /// 表单类型 /// - public int? FrmType { get; set; } + public int FrmType { get; set; } /// /// 模板权限类型0所有人,1指定成员 /// - public int? AuthorizeType { get; set; } + public int AuthorizeType { get; set; } /// /// 排序码 /// - public int? SortCode { get; set; } + public int SortCode { get; set; } /// /// 删除标记 /// - public int? DeleteMark { get; set; } + public int DeleteMark { get; set; } /// /// 有效 /// - public int? EnabledMark { get; set; } + public int Disabled { get; set; } /// /// 备注 /// @@ -81,7 +86,7 @@ namespace OpenAuth.Repository.Domain /// /// 创建时间 /// - public System.DateTime? CreateDate { get; set; } + public System.DateTime CreateDate { get; set; } /// /// 创建用户主键 /// diff --git a/OpenAuth.Repository/Domain/WFSchemeContent.cs b/OpenAuth.Repository/Domain/FlowSchemeDetail.cs similarity index 83% rename from OpenAuth.Repository/Domain/WFSchemeContent.cs rename to OpenAuth.Repository/Domain/FlowSchemeDetail.cs index 27a5f076..8da7b6c7 100644 --- a/OpenAuth.Repository/Domain/WFSchemeContent.cs +++ b/OpenAuth.Repository/Domain/FlowSchemeDetail.cs @@ -16,11 +16,11 @@ namespace OpenAuth.Repository.Domain /// /// 工作流模板内容表 /// - public partial class WFSchemeContent : Entity + public partial class FlowSchemeDetail : Entity { - public WFSchemeContent() + public FlowSchemeDetail() { - this.SchemeInfoId= string.Empty; + this.SchemeId= string.Empty; this.SchemeVersion= string.Empty; this.SchemeContent= string.Empty; this.CreateDate= DateTime.Now; @@ -31,7 +31,7 @@ namespace OpenAuth.Repository.Domain /// /// 工作流模板信息主键Id /// - public string SchemeInfoId { get; set; } + public string SchemeId { get; set; } /// /// 流程内容版本 /// @@ -43,7 +43,7 @@ namespace OpenAuth.Repository.Domain /// /// 创建时间 /// - public System.DateTime? CreateDate { get; set; } + public System.DateTime CreateDate { get; set; } /// /// 创建用户主键 /// diff --git a/OpenAuth.Repository/Mapping/WFProcessInstanceMap.cs b/OpenAuth.Repository/Mapping/FlowInstanceMap.cs similarity index 78% rename from OpenAuth.Repository/Mapping/WFProcessInstanceMap.cs rename to OpenAuth.Repository/Mapping/FlowInstanceMap.cs index bccb458b..27594269 100644 --- a/OpenAuth.Repository/Mapping/WFProcessInstanceMap.cs +++ b/OpenAuth.Repository/Mapping/FlowInstanceMap.cs @@ -12,13 +12,13 @@ using System.ComponentModel.DataAnnotations; namespace OpenAuth.Repository.Mapping { - public partial class WFProcessInstanceMap - : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration + public partial class FlowInstanceMap + : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration { - public WFProcessInstanceMap() + public FlowInstanceMap() { // table - ToTable("WF_ProcessInstance", "dbo"); + ToTable("FlowInstance", "dbo"); // keys HasKey(t => t.Id); @@ -28,6 +28,10 @@ namespace OpenAuth.Repository.Mapping .HasColumnName("Id") .HasMaxLength(50) .IsRequired(); + Property(t => t.InstanceSchemeId) + .HasColumnName("InstanceSchemeId") + .HasMaxLength(50) + .IsRequired(); Property(t => t.Code) .HasColumnName("Code") .HasMaxLength(200) @@ -47,27 +51,23 @@ namespace OpenAuth.Repository.Mapping .HasColumnName("ActivityName") .HasMaxLength(200) .IsOptional(); - Property(t => t.ProcessSchemeId) - .HasColumnName("ProcessSchemeId") - .HasMaxLength(50) - .IsRequired(); Property(t => t.PreviousId) .HasColumnName("PreviousId") .HasMaxLength(50) .IsOptional(); Property(t => t.FrmType) .HasColumnName("FrmType") - .IsOptional(); + .IsRequired(); Property(t => t.SchemeType) .HasColumnName("SchemeType") .HasMaxLength(50) .IsOptional(); - Property(t => t.EnabledMark) - .HasColumnName("EnabledMark") - .IsOptional(); + Property(t => t.Disabled) + .HasColumnName("Disabled") + .IsRequired(); Property(t => t.CreateDate) .HasColumnName("CreateDate") - .IsOptional(); + .IsRequired(); Property(t => t.CreateUserId) .HasColumnName("CreateUserId") .HasMaxLength(50) @@ -76,16 +76,16 @@ namespace OpenAuth.Repository.Mapping .HasColumnName("CreateUserName") .HasMaxLength(50) .IsOptional(); - Property(t => t.WfLevel) - .HasColumnName("wfLevel") - .IsOptional(); + Property(t => t.FlowLevel) + .HasColumnName("FlowLevel") + .IsRequired(); Property(t => t.Description) .HasColumnName("Description") .HasMaxLength(200) .IsOptional(); Property(t => t.IsFinish) - .HasColumnName("isFinish") - .IsOptional(); + .HasColumnName("IsFinish") + .IsRequired(); Property(t => t.MakerList) .HasColumnName("MakerList") .HasMaxLength(1000) diff --git a/OpenAuth.Repository/Mapping/WFProcessOperationHistoryMap.cs b/OpenAuth.Repository/Mapping/FlowInstanceOperationHistoryMap.cs similarity index 78% rename from OpenAuth.Repository/Mapping/WFProcessOperationHistoryMap.cs rename to OpenAuth.Repository/Mapping/FlowInstanceOperationHistoryMap.cs index 7cc9ba2b..81218819 100644 --- a/OpenAuth.Repository/Mapping/WFProcessOperationHistoryMap.cs +++ b/OpenAuth.Repository/Mapping/FlowInstanceOperationHistoryMap.cs @@ -12,13 +12,13 @@ using System.ComponentModel.DataAnnotations; namespace OpenAuth.Repository.Mapping { - public partial class WFProcessOperationHistoryMap - : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration + public partial class FlowInstanceOperationHistoryMap + : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration { - public WFProcessOperationHistoryMap() + public FlowInstanceOperationHistoryMap() { // table - ToTable("WF_ProcessOperationHistory", "dbo"); + ToTable("FlowInstanceOperationHistory", "dbo"); // keys HasKey(t => t.Id); @@ -28,8 +28,8 @@ namespace OpenAuth.Repository.Mapping .HasColumnName("Id") .HasMaxLength(50) .IsRequired(); - Property(t => t.ProcessId) - .HasColumnName("ProcessId") + Property(t => t.InstanceId) + .HasColumnName("InstanceId") .HasMaxLength(50) .IsRequired(); Property(t => t.Content) @@ -38,7 +38,7 @@ namespace OpenAuth.Repository.Mapping .IsOptional(); Property(t => t.CreateDate) .HasColumnName("CreateDate") - .IsOptional(); + .IsRequired(); Property(t => t.CreateUserId) .HasColumnName("CreateUserId") .HasMaxLength(50) diff --git a/OpenAuth.Repository/Mapping/WFProcessSchemeMap.cs b/OpenAuth.Repository/Mapping/FlowInstanceSchemeMap.cs similarity index 78% rename from OpenAuth.Repository/Mapping/WFProcessSchemeMap.cs rename to OpenAuth.Repository/Mapping/FlowInstanceSchemeMap.cs index baef35e2..919cb0fc 100644 --- a/OpenAuth.Repository/Mapping/WFProcessSchemeMap.cs +++ b/OpenAuth.Repository/Mapping/FlowInstanceSchemeMap.cs @@ -12,13 +12,13 @@ using System.ComponentModel.DataAnnotations; namespace OpenAuth.Repository.Mapping { - public partial class WFProcessSchemeMap - : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration + public partial class FlowInstanceSchemeMap + : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration { - public WFProcessSchemeMap() + public FlowInstanceSchemeMap() { // table - ToTable("WF_ProcessScheme", "dbo"); + ToTable("FlowInstanceScheme", "dbo"); // keys HasKey(t => t.Id); @@ -31,8 +31,8 @@ namespace OpenAuth.Repository.Mapping Property(t => t.SchemeContent) .HasColumnName("SchemeContent") .IsOptional(); - Property(t => t.SchemeInfoId) - .HasColumnName("SchemeInfoId") + Property(t => t.SchemeId) + .HasColumnName("SchemeId") .HasMaxLength(50) .IsRequired(); Property(t => t.SchemeVersion) @@ -41,7 +41,7 @@ namespace OpenAuth.Repository.Mapping .IsOptional(); Property(t => t.ProcessType) .HasColumnName("ProcessType") - .IsOptional(); + .IsRequired(); // Relationships } diff --git a/OpenAuth.Repository/Mapping/WFProcessTransitionHistoryMap.cs b/OpenAuth.Repository/Mapping/FlowInstanceTransitionHistoryMap.cs similarity index 71% rename from OpenAuth.Repository/Mapping/WFProcessTransitionHistoryMap.cs rename to OpenAuth.Repository/Mapping/FlowInstanceTransitionHistoryMap.cs index 56fff372..e75484df 100644 --- a/OpenAuth.Repository/Mapping/WFProcessTransitionHistoryMap.cs +++ b/OpenAuth.Repository/Mapping/FlowInstanceTransitionHistoryMap.cs @@ -12,13 +12,13 @@ using System.ComponentModel.DataAnnotations; namespace OpenAuth.Repository.Mapping { - public partial class WFProcessTransitionHistoryMap - : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration + public partial class FlowInstanceTransitionHistoryMap + : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration { - public WFProcessTransitionHistoryMap() + public FlowInstanceTransitionHistoryMap() { // table - ToTable("WF_ProcessTransitionHistory", "dbo"); + ToTable("FlowInstanceTransitionHistory", "dbo"); // keys HasKey(t => t.Id); @@ -28,41 +28,41 @@ namespace OpenAuth.Repository.Mapping .HasColumnName("Id") .HasMaxLength(50) .IsRequired(); - Property(t => t.ProcessId) - .HasColumnName("ProcessId") + Property(t => t.InstanceId) + .HasColumnName("InstanceId") .HasMaxLength(50) .IsRequired(); Property(t => t.FromNodeId) - .HasColumnName("fromNodeId") + .HasColumnName("FromNodeId") .HasMaxLength(50) .IsOptional(); Property(t => t.FromNodeType) - .HasColumnName("fromNodeType") + .HasColumnName("FromNodeType") .IsOptional(); Property(t => t.FromNodeName) - .HasColumnName("fromNodeName") + .HasColumnName("FromNodeName") .HasMaxLength(200) .IsOptional(); Property(t => t.ToNodeId) - .HasColumnName("toNodeId") + .HasColumnName("ToNodeId") .HasMaxLength(50) .IsOptional(); Property(t => t.ToNodeType) - .HasColumnName("toNodeType") + .HasColumnName("ToNodeType") .IsOptional(); Property(t => t.ToNodeName) - .HasColumnName("toNodeName") + .HasColumnName("ToNodeName") .HasMaxLength(200) .IsOptional(); Property(t => t.TransitionSate) .HasColumnName("TransitionSate") - .IsOptional(); + .IsRequired(); Property(t => t.IsFinish) - .HasColumnName("isFinish") - .IsOptional(); + .HasColumnName("IsFinish") + .IsRequired(); Property(t => t.CreateDate) .HasColumnName("CreateDate") - .IsOptional(); + .IsRequired(); Property(t => t.CreateUserId) .HasColumnName("CreateUserId") .HasMaxLength(50) diff --git a/OpenAuth.Repository/Mapping/WFSchemeContentMap.cs b/OpenAuth.Repository/Mapping/FlowSchemeDetailMap.cs similarity index 81% rename from OpenAuth.Repository/Mapping/WFSchemeContentMap.cs rename to OpenAuth.Repository/Mapping/FlowSchemeDetailMap.cs index 0faed9b9..74ca750b 100644 --- a/OpenAuth.Repository/Mapping/WFSchemeContentMap.cs +++ b/OpenAuth.Repository/Mapping/FlowSchemeDetailMap.cs @@ -12,13 +12,13 @@ using System.ComponentModel.DataAnnotations; namespace OpenAuth.Repository.Mapping { - public partial class WFSchemeContentMap - : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration + public partial class FlowSchemeDetailMap + : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration { - public WFSchemeContentMap() + public FlowSchemeDetailMap() { // table - ToTable("WF_SchemeContent", "dbo"); + ToTable("FlowSchemeDetail", "dbo"); // keys HasKey(t => t.Id); @@ -28,8 +28,8 @@ namespace OpenAuth.Repository.Mapping .HasColumnName("Id") .HasMaxLength(50) .IsRequired(); - Property(t => t.SchemeInfoId) - .HasColumnName("SchemeInfoId") + Property(t => t.SchemeId) + .HasColumnName("SchemeId") .HasMaxLength(50) .IsRequired(); Property(t => t.SchemeVersion) @@ -41,7 +41,7 @@ namespace OpenAuth.Repository.Mapping .IsOptional(); Property(t => t.CreateDate) .HasColumnName("CreateDate") - .IsOptional(); + .IsRequired(); Property(t => t.CreateUserId) .HasColumnName("CreateUserId") .HasMaxLength(50) diff --git a/OpenAuth.Repository/Mapping/WFSchemeInfoMap.cs b/OpenAuth.Repository/Mapping/FlowSchemeMap.cs similarity index 84% rename from OpenAuth.Repository/Mapping/WFSchemeInfoMap.cs rename to OpenAuth.Repository/Mapping/FlowSchemeMap.cs index b5af9cc5..f60490a3 100644 --- a/OpenAuth.Repository/Mapping/WFSchemeInfoMap.cs +++ b/OpenAuth.Repository/Mapping/FlowSchemeMap.cs @@ -12,13 +12,13 @@ using System.ComponentModel.DataAnnotations; namespace OpenAuth.Repository.Mapping { - public partial class WFSchemeInfoMap - : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration + public partial class FlowSchemeMap + : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration { - public WFSchemeInfoMap() + public FlowSchemeMap() { // table - ToTable("WF_SchemeInfo", "dbo"); + ToTable("FlowScheme", "dbo"); // keys HasKey(t => t.Id); @@ -49,26 +49,26 @@ namespace OpenAuth.Repository.Mapping .IsOptional(); Property(t => t.FrmType) .HasColumnName("FrmType") - .IsOptional(); + .IsRequired(); Property(t => t.AuthorizeType) .HasColumnName("AuthorizeType") - .IsOptional(); + .IsRequired(); Property(t => t.SortCode) .HasColumnName("SortCode") - .IsOptional(); + .IsRequired(); Property(t => t.DeleteMark) .HasColumnName("DeleteMark") - .IsOptional(); - Property(t => t.EnabledMark) - .HasColumnName("EnabledMark") - .IsOptional(); + .IsRequired(); + Property(t => t.Disabled) + .HasColumnName("Disabled") + .IsRequired(); Property(t => t.Description) .HasColumnName("Description") .HasMaxLength(200) .IsOptional(); Property(t => t.CreateDate) .HasColumnName("CreateDate") - .IsOptional(); + .IsRequired(); Property(t => t.CreateUserId) .HasColumnName("CreateUserId") .HasMaxLength(50) diff --git a/OpenAuth.Repository/OpenAuth.Repository.csproj b/OpenAuth.Repository/OpenAuth.Repository.csproj index 42891568..60fa5741 100644 --- a/OpenAuth.Repository/OpenAuth.Repository.csproj +++ b/OpenAuth.Repository/OpenAuth.Repository.csproj @@ -60,6 +60,12 @@ + + + + + + @@ -70,23 +76,17 @@ - - - - - - + + + + + + - - - - - - diff --git a/OpenAuth.Repository/OpenAuthDBContext.cs b/OpenAuth.Repository/OpenAuthDBContext.cs index 60ce29ca..4051966c 100644 --- a/OpenAuth.Repository/OpenAuthDBContext.cs +++ b/OpenAuth.Repository/OpenAuthDBContext.cs @@ -41,12 +41,12 @@ namespace OpenAuth.Repository public System.Data.Entity.DbSet
        Forms { get; set; } - public System.Data.Entity.DbSet WFProcessInstances { get; set; } - public System.Data.Entity.DbSet WFProcessOperationHistories { get; set; } - public System.Data.Entity.DbSet WFProcessSchemes { get; set; } - public System.Data.Entity.DbSet WFProcessTransitionHistories { get; set; } - public System.Data.Entity.DbSet WFSchemeContents { get; set; } - public System.Data.Entity.DbSet WFSchemeInfos { get; set; } + public System.Data.Entity.DbSet FlowInstances { get; set; } + public System.Data.Entity.DbSet FlowInstanceOperationHistories { get; set; } + public System.Data.Entity.DbSet FlowInstanceSchemes { get; set; } + public System.Data.Entity.DbSet FlowInstanceTransitionHistories { get; set; } + public System.Data.Entity.DbSet FlowSchemes { get; set; } + public System.Data.Entity.DbSet FlowSchemeDetails { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { @@ -62,12 +62,12 @@ namespace OpenAuth.Repository modelBuilder.Configurations.Add(new StockMap()); modelBuilder.Configurations.Add(new UserMap()); modelBuilder.Configurations.Add(new FormMap()); - modelBuilder.Configurations.Add(new WFProcessInstanceMap()); - modelBuilder.Configurations.Add(new WFProcessOperationHistoryMap()); - modelBuilder.Configurations.Add(new WFProcessSchemeMap()); - modelBuilder.Configurations.Add(new WFProcessTransitionHistoryMap()); - modelBuilder.Configurations.Add(new WFSchemeContentMap()); - modelBuilder.Configurations.Add(new WFSchemeInfoMap()); + modelBuilder.Configurations.Add(new FlowInstanceMap()); + modelBuilder.Configurations.Add(new FlowInstanceOperationHistoryMap()); + modelBuilder.Configurations.Add(new FlowInstanceSchemeMap()); + modelBuilder.Configurations.Add(new FlowInstanceTransitionHistoryMap()); + modelBuilder.Configurations.Add(new FlowSchemeMap()); + modelBuilder.Configurations.Add(new FlowSchemeDetailMap()); } } diff --git a/OpenAuth.UnitTest/TestWorkflow.cs b/OpenAuth.UnitTest/TestWorkflow.cs index 6a6b29e9..5c1c6383 100644 --- a/OpenAuth.UnitTest/TestWorkflow.cs +++ b/OpenAuth.UnitTest/TestWorkflow.cs @@ -9,18 +9,13 @@ namespace OpenAuth.UnitTest [TestClass] public class TestWorkflow :TestBase { - private WFSchemeService _app; - private WFProcessInstanceService _runApp; + private FlowSchemeApp _app; + private FlowInstanceApp _runApp; public TestWorkflow() { - _app = AutofacExt.GetFromFac(); - _runApp = AutofacExt.GetFromFac(); - } - [TestMethod] - public void AddForm() - { - var datas = _app.GetList(); + _app = AutofacExt.GetFromFac(); + _runApp = AutofacExt.GetFromFac(); } /// @@ -33,7 +28,7 @@ namespace OpenAuth.UnitTest string name = "请假" + DateTime.Now.ToString("yy-mm-dd_HH_mm_ss"); string str ="{\"Code\":\"请病假\",\"CustomName\":\""+name+"\",\"wfLevel1\":\"1\",\"wfLevel2\":\"2\",\"wfLevel3\":\"3\",\"Description\":\" \",\"EnabledMark\":1,\"wfLevel\":\"2\"}"; string frmData ="{\"4fcd4c6f-eb6b-6a6d-eb4e-7948763c5bba\":\"\",\"88061dda-642e-bcdb-909b-cea2bbe5ad69\":\" \"}"; - _runApp.CreateInstance(string.Empty, (string)("5f0ca3df-390a-4bd7-aecb-5304bf2d191c"), str.ToObject(), frmData); + _runApp.CreateInstance(string.Empty, (string)("5f0ca3df-390a-4bd7-aecb-5304bf2d191c"), str.ToObject(), frmData); } } diff --git a/建表&初始化数据.sql b/建表&初始化数据.sql index 0b2ae0eb07e6d64df87b6ac1c1649704e8df6b08..c6cc8898cd2974e1cf32383d4c350f59d7b0b697 100644 GIT binary patch literal 261798 zcmeI5TZ|>wb)HMHBbu@m`yudy@{o}Nc!o4DbH7lRsHeM!Y>3k{?Cv2&49VeiPtWv- zoQvnit0{?QA_|m1DW+({50?FqI6weHF9{$$1To;y0Rls?9Uu?Niw!ss3^-N-LxN=3 z%=+r@J!_v^pHt^lb?=(qX!J~VojP^d``>H*>tAc{djB6z6^q4ev7I)DAtOZ;%M=7@!{e_#l!X)|36sV8~yCCz01Yt>^m!V{6lt*9mT2Qy8V64zPnnS zFD}~IR*Q4?*I7H_Y_U|lR9=ItowM&=vGYG*+b8WC7mG`F#5FtOGxnXA>=Vw%&!U~5 z&#&4!cC4RkwY=WmVt28pI9%Ls|L?PZ_Y`~Wh`qM`P_f_sf5^5D*q->VA1t3_x>&HM zp0YdQ*_VnZ?H<$$qukdq`}T?AxP9|Bf<{^??uU2%7Dk9{_8t?{V+RBOQ{ zJI`|QytP4hD@|DoT(wUwT6@r*7p?s+H{4EOW6ADh%ARJim@CfQeyT;=d&2&TpDrBz zm_7N4vTbMV8*|oYvv%Z?Z5^}US!=z)-}Nh!W>oaZtPM zD)0Sn>%%!iBX}DPmGkAZdH>#b`#kg3FPE(6bgo`x>@{p0SjPtK)9)O*Tfd`?&mx5R z9q8LWg8JbzzKibfGj6X(|9I5BX;aAJ2PX6u{dx4&laDxy`Qw-6E-4`75CW|XV=}Z#l0<-qy0pAMV{!mo#j+{ z58dCLv++rvaBpYq{HN^5Gq>-)^Ey-ZERWi;PuLMyQU2%eX*(X9qNC@_dy0?c2_7!b z-|uMbE!Ie_9Jiu8*s#z0S+R{Q5v>+~XSin^Y}cpPk$J&J3;quzH0Sw(jrOMtqoF+( zy|=}BM?$@}e3FI!|dN=Hn*DXhv#%M9k-`} z>A4>pg;xb6GP2qxDSIwP(=GeGVN9s%v&Af&xUTzrZf&~#>9B83@>HlBtK~CYDcfn% zr#fcmyJX0emNGgwh*8t|?cUz*)-c?&_h&StaFf`QN)hUg%{H>6eh2Y+Laa7voAx{B zus$E$M!_~bTK4;@+1Sy0X`=|dx1UhJ263=C8y3qcQ0okE}m^j>|gL(yBgjc*{2LGpkyNjr=5W7)trzak0_3 zjBU-GXb0Om{$u}`Be`LbT<~!laZ|D(prKBUJ?+rEiUg^b-jEr-M_-u7qi1?h3 zmtOR``H_v3@WD(1?s%n)$gZ0o?qqF)IoGfeNL+&kjLwVNEM0XY{gg9?EMTvK*qf=T zQy(3Kv?XgB;#FD~=12=?kF8AYsJXF8+P40&-EB+i8j(ayicJ;cRy}Wbbl82q!Q*n+ zH;2U-8}W!GdnVLjqV`FjC_dNdPZNJ@vM1>s$%`cq4-w*ETj#cX{CFobvJZ7+v$o2@ z$DT7Yuu&OUXRFn3mE-ddQwaw%nfNS|*oyc(otCOs9U1LzCgo`H9g*L-Z250hK}q%L zy|0ZJ>A31%sMF0L!eIYT!}hHh{RHtQ>^j)_5vV|@Sh`l?CQlRMpJ-f0#E zZg8pe%h_^lY&k+p)o&q&d9{r=3fVk();VKKqqD0{l~f-8?E3fd{V$qN;cTJ$%9%pv zH&2$l4rZ%sSNZNJ->8Ruj@~X}+A~&d@0Plkt9P>uZ=G3V`rCoCR%w&iBLr?Z4Do|o zIA(?QGu0~372nCY&vj>c6Sc_AGU{W@WskCvN9k;>`n?Le199-#E;YCp_wY- zg|ZX0iP6rmVoz{+go?P~vw{}OxbH?;KQ_9DlgC!2LLGfd^g)Fl>_~SpUe5+kU#+%1 zej4}KRqD#+yNAusIc_san8U(cGM+Ne%Gr*ya$<`;TY5RFZ9~mZ_I9IsyY9BD-}lX! zJ-W0ZhabgD)L|c|%r@TGz&65kL#^Z>-;3H4)a*evc9io}nF%!LUZxHA@QM&^j%V!` zY}}CX@SH%u^Ni9m_?=L5H%fLO9>Y~V#-KI{S(Q$_^q(IV`np>|59g?QPw{!Gc(K{i zmmN2M#!S@g)3)nO(-Ss+E|mSB{ntkRE3{MnzAC*qt*$65X6K!@v7fac9`S77sO@N( zzwgY!kJpCrysTm8+ut#hW03cY^}Qv#&oJ+i+1AP=cjk^qIgfk6QGEK=#*S1n2k+g9 z^7I%0>oGi>z5TXbR|4KmO%Apr&*~j*22;N_tDgmIG{>)>9nma1ttmCgqHe5{j&g?a zG{$&t*Pu0bM)L{rnTYhAERhHx1Kyg@$jpd%hp-*W_6xB-HM*bwFBFFMNb$Mv-ULyD%;PE>}T9oO_Li#OUbA8&3hT|=m3HG+ z{h|U;x%7ga?b_|S-SHHWdU!Z9ZASMVWwN3 zWnX7s(pF!>n-W+DWx==stHs7KE2=NE-{KYfciAyQIB!!p9aa77@7{G&wZBt0)jqG? z4Bzd)GP^zv>Y}a=lOtcm8zWHjc>BYAvD5a<*vbq%)tv3sn<-#D3-%f3;h5ij<%2gq zyQIIxO!Y6Hg`+|ZqP`KZ9^Rm{)0k|$R@j}^is5-fYwRp8pa00$cHKO*oLlYbGK%Sk zy+wPA37DHLSDOns^fr9vrLAhcFm~|E!$xp_O>EG33rO*i5k}eFE8yjoSKoT#gA1>` zswd}7FtpGviwIv_uf*DI`wrV1tfuVmJ;g!$WeiW*7Vl$XWQRGC!9U+qVe}m?dB?Ik)RXzzi$1Hk->1sRXy$Og&z~+W&}n-nxY`ZNJ%qK$bu?L`u)0h*wtM!j zj_jV3>)&T~T&SxLtHgwRai$YmG+ZU_^T2y!E8p*PXNx+&s?fXFTj~9*-}&S3hR^-{ zgRpnR-hQ^*-hX!1{zZSd-)6oYHvQs|ZS6Pw9JKxS7e`7|t(2dhHJq*5H~8ISzV3j1 zy8pJ#-&q{`>ZhI)Qup5W7N?6>ijS4`6)%;&^D%qh+Q&-2$c*y)?drU%?1G_$cf-+t z=WYMTZTkh=f6lho%1`!`Z%n&txc|6)|Gx4Ztmw!$bj~lW-gn{Hnm&WUKX36t_)JwJ z{?@t&%#*Q7ijKZ)M^mGy^QcDgti5q)&-&-!?LxVhK6koSevhZnxAm#ttF5Z2|FVB6!wpjC0-w$)}OYu{hBF~dmQ7%5m^j$r<#&=T5GDDbx2yZ*WNnvVF=>dM-Omwxb)zTJuA z&hg|etZ&96#_^@k{8+3+uPtzVg!?>a&wFnDC)|ra8}FOck?|92FSe!s2)MpJzjs*w z#OI`sK2?0eMvPy5hm9*)9Q9V*s_Ij3RUHvpRi6&(LmeAmNymp?(C2&BG1hIj!l!86 z;d`B+dLQN@az0Zu&z}_X#`xQ#Qi9FZbA(<2&rvr=PI%Ub8*? z9q*67wKw{fbKmfNta?8iJgEilw!a@Mf;a8##gADm*!lif_oOkZKi1I>oV}mT#e;@V z99y5Xy}=fQPh(pv8wN}8Z}-~S_}p$|KW5nGTZ2cCx1^ulZEO5#Z$A$1-&c+4U<0n& zxMyT+bp06D8{3Y!m9fX2K9oKTwz$d_8ChZ<>IrX$L4D-bns4|~y|#MeG0yW~mp@hh zU(G(~yZU}V+W-gcv=`wz_1cB|i&uL_@Sc(l>t9z%{O?=8sh?p{-jR}%E8>H>AFv;8*jl!BOPo=O10yiD%vRi>v$9Oez|hU-z9M`U-1^=+n-bYTDO1OU(E6U%4ZE zE)LLrwNAxd$HujU-N$#XhN0s_1gn)Tde5=3M#miJeP$u|8XEQ*Q@P*%KWtcFYrlCI zdhvey|E%GCuWfP65gSnlEwbBfzX$CTvdr#X9#XfRP(J^PeR{y2^@#mc z(IGQl!&^qH*hBX{{9Po)PvDCR@S!%V{xBdu@{R+)?R=8+gJUZok*0*oo!z8 zHV;G`F=Xs9{Gd(UZ)1JMe)p6Z+Hd&4(jB%VmdkzT?P$<+-aetS<$!$)rOSKLZQkJy zoA>>%eg7L|IQ+;5jq{@a9JlXZw%-eO6uFR>x&8 zYIa2U4%=dx?pK_VPR;_DdEujmPcw znSIWdE?%2ZIJvVd9lQ>v2JZIS4{--<4-bu3K4kmx%ezaQvZWl-0YmMI9f4nF+pU^& zyL}xPB^LSVCp-Oeh(++kXb@orJD45MJNM&&z06W~>p3nWk$MDu~+aanZ^> zXA66$Ti9j89C#ysK5VEZ^1*5Ei7m~*n!rM ze(s4Uy3rb|9;3uRfh`VZo%`&*MnP>jQ{bIh_32z+IIxLSRZ4J3HROIn;n|WIoHwj8 zmjx?($bR6lthS622dej!*xhX?hshGR!)^QF7VP@|KmGEx*Sm2W=39<}S)FMxV)xp; zj)GX7C*!r9sygw~IkU9~O4N$Kp0~gEujBQ|I$rnKzM#3YjeVwiO59*igiDXMI+^Uu zSHE_-7q6Y`c8rc&;muL!@jdEk#_gTX52%+zyFO^R1-r0Ww&1m}15{G%?0)-Qwk@~> zR`;C!kA3FogZ8i6Q^)Q84m(RdYBz2}wP782C8O0wyv~-{{CM5(?n>Es?P>Y#?kH!< zqF1d6tg*w!b=j^WckJnw+w-(F_U9#TQ8p`2J=s2v0tiNMM7uTpRt=9u~-&xo{ zEGLNq4=)9a#7}U~eTFPh$R42(P5?{YZT}Kgk+b7pG%T`pj>2WTXX-U&U74d5-?<<6 z&^-SCgA2#M4uAFizNHynsxft5K<%*JOR~$ZM1{z8tBdw;`4+2NzhuW=wENaw-EVg$ zb&R?cKeFGw>@V9L4YzJa6wk4kM3v3>-Dy}nV71oL0ekp(Kf=)hBk=vcMRgo%b3iTQ+t>Dr$3_zv_Pg4bF}!X) zQ?|i-41*vR6q7H<>l1$o!_-FvU5k7=*@Ux(`hDdwu!lYNL&m}JCk$&|h40<5aPD3I z%eSchc;4ow#8xzBqaOET4f|PDV!q4k`Bgu!wqmul-ujnpN9*GOdrIrMQu=f72+D}( z#RJez$q^i}J*-m)4}g#Ewd2Wi9W*>rwG-ER2!peRPi6-=Dt__vUw_;G@+}w!M-IlJ zv&=y_?C;%m4bPO;U5Ax%SSJqg=J;gAIz&bIYen;W%u=B_DQ83O^sw1JlqfhWOn@Kw zn&WCT90t`AWHpCGu1h1rmQ+g;kMGvKpQ`u8&CiPBe zQe^VUUKjmRlG;#{=%?=Jn$f*<2s(o_doMIyHldsnlHT#uS5UCFUncg0r5V!c?z z2NSzcM&-dQ`$z#9% zOgB0;-xKYgdVlc8v#MSdUjPzO6T*Bbsz<#IF<2i4v4ZeK-k^#{ z0(nFySPC$S7Y3JTIYikoN$N1*nbd2d{SXHQ`w%b~ETr%6w2QvKS%t@IJ=|m0T`8UM zSSKD8i{O#uvEfxgaU^<%VPPZD$U!E#K+V}_2KZUq3#)W|rKLD}twbDI*IQAV@mMDw znXd*@CtfCsK4{zcURg@bF(-44)(swsUGU4)2N7peF%(z(rh`X~5yxTn)9FUkthJ`q zS->OFGZhjb5gbxoCWQx^sqBnYN$Pvizd<5av)eAF5K+6@=sr5DJ1Jw4${SF{99?in zeIqsyEW!}MCuq~GN#^jdiVOKd@-?hNOchx-7PngY*8O-5BUK(eMO|~2vtO>yFQX-b zA$TCOYlx0P6>0|96g#B%!u&Bf7MVk0X%LD^*BiG?S>i|7x;+*LFLZW0`dAB=+yXZLCRiWbFg_Z06Yz!Ki`^ zi^)pb=y1$8XO=D;l5;p}($IIPkTa##TKuIkUa2&t76Dsq9AU){1Imqp^hI zk6JB;XqxDmeW>8f!9fRRn>Pj==z~SKmz}c?9JLS4lfT1ydi0B0=|_b53t^U6=b4(C zztDSEJ_jfB&y?*d{F7hwAgPk74hOf&#VHb3q(qdYRgS3HApe8z9!aZ^^IHm zZvH4*)zT5$uS(KC9o@Tg{)^ZCpyMq$jE&4a)5afFKSVWBf;2Z#nh;n+2_h0#b`6|T z4MawqY%no7Jk;?b{B3po!+ah0>#hssipZ3)NUTFW1r~$MAq)(3VGB_rQG>9R$$Pr=-HD?Dp2v7tQ0sqJm%MXtNJrk0&S2LFZ&ngDQSu2Pm0%ec~l% zhdDOgma;PN#g3JFzW4UOd**+?^wP1iph5QbF>}iaZ$4`FV6h` zFejG!aI_$*Dw%zVWyA&&@9<4Nhm*#uRJ%QVzV8f&&UJm_84g&)CRX<0ig|u)+i;1# zsOnv^GDJ1JXH0&YnTTv@UKC!O`ZgFRd2g^u)~0jCiWrw}3p>&1`8KJ0Pns&UYHzJ& zRsI*EPv7{>|Mq1+*0-*99Nz?2%owEFD#bM`n7@V6tx7Z^YI4wF-Q6%3R=F6Vk-2xM zL(I<8e)y!LNf?~!vW{D!lzTmgXKm_UA3NK_`s^XKkJR5%`J)^mnQN-Gh@C;GvW4hD z?8AEEk(mL3{!LVkmfnj+uL9~^CDxDhRZRcaubo=-{k|2~PzD95^K5nMKj=QxB>COA z{*yD_>BinVNqb48V_{+^2J$9OJYr#$nzzh@-lP{5HBdTgp4)+m#t7H;HfOf8uZ= zZd4i~cj|&1RcXXH#8f#8-nJ|_6=_tQ$v#Sz#M>+426@EUU{!M!K`y#EZ~A5x61^F_ zcNHKp&F**SIcEQ4@rAGQ);-_jTT&{!zdO0L)D=7m&$U7+du(_mzf@#k2U#Bo{T$W_ zrwkQBROaHl@z5wmtj2P%D#BWvDY$b^6c?9HG%n?w^SVZeaEk}98JA*Uw zGGI}04mJ|Js%8kp>MbP1O6V-aLg=VTwhitw3(3%bED6>sDyyRn=?Bm^eAeSF4Z%2?Fu zrc_t3Dk?snYG6e|njel`MSoIE#0pl_0h0}vB1*=m8;fZu?Y@>(=9wvDP|*f)4qjSy zzEoad`&buMnQ-(^cqV&@fS8d32L*-HU3Oz|W1hKL`R`np(JpNWZzV>FK8YQ~3WnL= zSVAHp5QsM>Gl@c}tdG9IzrEgh){fuk4L30!iKm)*#|^8w<;vf7A(E;Jt>_01VTAmv z_kyFP>m9cEZz3YBCvguomc;F>g^JJaoh6Y1U(8r+8x~n38TAotX}&CT$?(fsLkO=; zo<_4Iz@{oJVTmId#6doe)_HSEKtq9ZWI?KVccN z3sz^b!&bIAUBsE`Y3s@B*7k6))s9cP-xT|Zt&DS{_>3L(((Q_kllDC_YM1Sk?&Ig| zypP&vASG0Iu&=K7haWW``EoIBcg3BDD@@xeKG*GTuGpJ$dq3k|nGd#FEZMhtr>}p{ zKa1OE(ayyCb?5E>aBTe4@v-4uy4@`i_UqVttQQ`)R(P~HRm@tYCVc{u$G;U#|tPQ#W7@6bxfQg^*259hVnffZ+rfyFaF8m&p-8tuQ_Y>Ek67H z*Yvk4M7&NU-mAOz?`dn=o^8?Ecb7fUi}tIZDSM(L#j*0QY5Nynwa0pBM|t#)Vy3HK z?kUHSuIq6eb+39iE4~o^h23CY3vC2nBUhq|Me=&g96$-=mzaSWG}P#Xd!D39C6B2c zW=p2a@t^9LB3la&qBfOGn!FSYi7n=qh{IE<#iuYOR`zDy95iEUz!+ZvFFS1v?d};% z@4fpMkAM8xFk(8r(vh{-U;p-1eZPsZbkxSwA^Roj7-cMlk=%=Xtwyf>_Y@y4K2$th zoGAaFGyAk?wrasfHGR$;a;)J4ww*^o`lCSWkuht4JTtbE_i;&Ak>3FOXfOOw=}2Y; zWstcqXfSxD_$`DQ1$%o&!o$z+p1<<;59j-j1wO5RB=Ai5m}BNi_Sr8=`Y0p8y$ZES zuvBb?)SiIaSAnSo9PKP( zCf4a!I(<$zPl`ubHI{b3?EF+Yo@PoLFl)^0@JQn+c$S?uGV1lZc|6@HqnZ$Z+-Z?d z-S#((C;XF-CHFp^BdIBd7W<_=HmZ) z<*d%FA3Zp3CU1nQM9xS#OwCV|_h#0HW)Ow9i&8s66iqEXsww}*IZVe)(2_c?G@aV^i@oi)QQCh$~ zm7!>VRS}5N!02FZ9kqXqEutp}>`&gx7ORH!Y5Upkx!q$dqfwCy#|}_|POmePg#vtu)+E3K!}m1POjZHp z#j|+a?gi9M%KN76&d7WWM_>HzGjdc|89XH`F>vqlnmidkRaTGZ1(R4g9l=^QT2mHm z`twk&r#6B6;VxEW@wPA+>>BDRy~J!C zT3YrFwn&Yy_mXb~{8h1fyVv6lJUVJ98M5KH^J{Wf_(XghtV=6&;VCtqu!cMj_~IE+ z!C<#&rh4NpE7Zi}sXm=7qb^1ryqlT}y(5SI!m80rU`^5PVe1J{hbN;~$$Jusph|#T z?|0vtjO}6Pu)li^hqH!?L-y}*{KaftI5g?@Cfjy+%DXW z7Qt`(6VWoDkbJtbetK`O#~VU2pEFvqt)Q8)%KQIR+XsKl2y_IJZ=tPOCk;En-;8~F zN%OztZDCFH5}4pEwfw3w4Q}YY(iZ6v%`90tNzpiT%jK&w!Nqqt0wt@4`ag={GnqYY8BP-EE6 z*3V;IqE;9mHMnS7v?=3R=tJ=mBEciJ5pRZ;CF_R`z|+LJ^t!E|>YRu?s^SmbxK6bh z)*+uPFFpPY;%xog`hh-1CKXNMEO>VqwM0{BdfAwp9v2qDrCB&{k5FVJbx1j9OG0bQ}~%;xrUL;^u7s zV*5u$5P2o=MN3M34UC5NrcKF#z}tz4;n8R>*hFFkypW^Lw}ST_C+eNGb57ZHVSdAL z=hws{6C*GKQnM@2Cdm$h5$ri5izpu58H~VUvF%cb(E?GJ{ES)aqx!nu94{l8iZql7 zMYzO>jAeR>5i4zi_zfh2G*mLO0MgRnWN{|S`zu(zaX4RyILOXYGq-yL?8Ol;u{gOd z_ypdPh?ht=SSYH};ALQseOM(%5LRAQ&Tx?Ux!@UCG2&e*033^L7M>Yin zOv7QwprcrN`2a^>b(=@e zf;%b-4w$t&YIie=(ih{dzC5hQ8g*6XXWTjNQ0~BwstXwZia!|3ji{h2GlsBFJP*nVmW$eb z_A(0L9w;?rfBbpsLv+TU;}7(q87mj1IY(p(z#l3K@dsX5`%q%(F}NT4Es-(Gg7=bd z1-mzn*Tuhq3o5Gi848b9^t$!u*YLNDH7qlT2C;Zi`~n&bTB%sEW-U>5hQB}yKxsz5 zhr4928%G*p)RW;wNyg$4MbM@&KIJ!v>oJdzZ4@SDX zw0=}b505xv>sNoIOXSbkBie_{(L(SQsREikt|*3M$o@(RM4@N30?f>yNrl;QMA0@eQPqShrNUAk>@>Z|89MDSG>56b$m1a9DnF3RMQj1!eo?b zlO86P0_P(JKuLfbf=*Tsg9qYK@F|Wu-wK>>Jg@8dHF6uEaJco0tyTT352XeE2D>Bv zpngCKGaf=~ohvGX1LAdMeaR7#IfuQ%t~2X%)~B^RrJpFP29whaO!kt!75=F2WeYo~ zj4-M!RuJ#(sPnB!@Yh{kz)aI>_^ZFV06R?NkHV=~1D=e&4*t-p;Ce7UY&ZL;9D>2n zo@^_Zl<^nik9dN34m4rml)D6VjCECU(B`lyViMU&tw+ZldsfG2@f}AoEUEoi@d`1>XzCuzplfDIUi2 z;6*}?mpn)lii^*loGI~M6@T^X%+dg9CB_8fbKJKUXT`-87iK@gQHUxuX9!M1?527? zwy=nrm4mlNxuv=T95U+h)o$~AYmzLl)-QkqqV%9X@2hD4xG%;Ms)uYi7MyAm*>yg{ zu9N+OwXyOc5ve#DPfQIjU!*Jk)x_)au~E9)dWHx z2m_JmFsgN76&I9N^ca*^>Xe9;y_bAz67)Iqo3fY}G*m-h{mc)=35$$n&UK|!J)XAe zx5-wnqDFvfDMqYxW!0O@^D^3DMN|n9y=gTZYTx*aaZk)lwUJ}aw*vac%e6WFQ2nT; z*=qcuH(?POhl`e4^2t79{Wa(BUVjg)1N0tzV*i*s;DFCrCOKBm%gI!M4jWXcu%T;uuBisak&~Gi6 zj66pkZA9D(wrEM(3tf*kmHvz`3d|4h#HV;-{0~YX)h&)U-wO6_ym({E?gI-$?K-)R zQ7W6`+P?a{W58do?Q6o{GVg^f8agxH1fB!y0e|>m@jXU2Oo=#yo<%uhAGPRkKu4W# z1&cRMp4X#YsV!B}SAVpDU1JpDE8rir6bhbN3Jc2?tWlNW=z&;YbaL!C+wjdC?RvC} zg(KdOCZJi+;0bSq-=*S!Hihkr3&QbGWYM6>alm{wo=-Fm`sioH8dyL6s;0Hn=P85j z%Sv)tzRly z3s0)~1u#0)09B_cdZw;kIU%AjSPc0UseQB(+Pr2kWb5bF5AT7>r}rdi<_6K4A~~@_ zSwCW7u|VnzsQ5t1AV*JymZQ$M0{+Iaew{05q)=m(eQy)i4@H1%KDi4p#~TBfw}JJ8 z`NL<39;wkK*3+CC#VHCFC@(S1^w)u#0u;2~HuT7&8t*c@#I4^}+}Y)~0r zlmxA+gqlyq1~GBAezEnVtu#}O>@6)xwE=dJc7%62N6dY)AXWrEk-;(7YjuU2=DP;@~wcsDoQh$C+c7YjVb#*YF8Z|b@(+k z-y3XEvB(`Ohp6}zwt(FNbySIA!FU$x%wTfDEK0JUF)PhYppMpN+>>9!>%x-JV6YAN z7W@Y>uKWxLlXg!v5iFXFc~g2HYt$dJYqL^r)%uqD^*+2mId4@J5ML-3SA2#}N~_^# z^BWT2aJ(IE*qhm?&V!fWL$y|)VmILr#RV^gg+?|H<+=Y{-Vk$48uK2t zd)sda9B%z$y}5qHPdP|3YnoR@yWpD@^U@w-$XHv@$w-C^l8YpFPEMSy%=(=5DHlcD z0B;6ss4DnW*+1f0G#Bz}v@W_A)$W>u2`@sI+c@eN-Rly`DB8gD@^jGaUp3s-uk|s` zsJI0^szikuOPxnC(2PISWa`ee0vLReW6+y*49q0w*+QNTtYOjUV@12D&cW~ERTam3t?}3%=ftB=8{?a@pM4|X&aa7TPH!u+M2}+>sU{Hwh~t43 z`9^F$@d&<@F-7hI`{ifMsH>mtfjZ62AWy;UHCms#0jwR$3bh9K3f1}%4bxLvzksSg zIAQ%UZu}lpvAwD*x75$}q%I4w@Dmg#RrAnRv=$>2_KX&dS|tsX3=-M^**O$~Z1rMq z3n!7vLdJrerIah$l*%f!dJq7sqjm8iAP(zD9kJWM+9yusouCaKmT^ zS5yf(>WFaht!OKJD!q@94Tonhs!Y6cwxe#6nt3YaWh+>v1#4W@>Z!tsdM0f#p0u_! z;|U9|N&sv&HWBUsgA;>*#bM#&YHaz|I&ve~>bccJ`@)Lx1ET|RT9u0UBgBIED{LYW z23}ZwijJUF4jgs9Rj;NuiuG$&)5FfgF{G&Av&p`}K0q{Ml88(dwv1Z*EmcDJYW~&A zOL@j_JYyG~6F!Ws(W>fb%ks6@HdRX!|0<_O8I17U!lP;R$&6LLR1@KR?V0s=M7iZyn6W&G(a$k)n%;_<%l!q^H>9(jZTX96_2L< zV04UVt;nJ*5&2qjNT8Gv&u3@}?2mm^FZw3UXsC*Bx?;>xe@25RhIOE_!;!-b4k|5Z zE6pMz_ao0vv_s_zkvkq9^$HAT{KfbKd0O=cErBsjw5e(jY9BSGiSqC$C<*W-SQ0f= zcx<8&N1bm?!v2ohb@-XKdpc_Wj`kL|*!!xMlge1K3)mwRW{olC255a-thzEeFia4H z7gcRGDtfG$*QXk0_7~V6@dMV6e&82dhr$65WUs6q7}M&^^bh=pIc#_q`jj4X)cMw= zG4G7U9n0h)yP9)^}wCHF7`kQA9Vv##;6|$ZSX<72#WK@3g4t&cgC)l!kb`-cF9rjQ-na^jM-=VhSmx*go12ODN?6r4Q>T zg<0$dYq4=1!8kDoQ8nBN)e+8AHR7#*eNwDDV~q$c#ANV4@e}S*`~+lz&45xo1}u@B zGHfNIFGe364`xh_B&-gtU)l??9g2dg_{bWd>{F>hMGL+f)`$KQ*IK%_nuPOpuMf!; zhx^``^Qlf9KB`(|tPxxmjNpBR5!jt(hK{m6WL?$Jne#d4W1bLL0$I|OrMc2ejBgy|$ng38-ZyZ*>fRUDsafND%9k{)uVO*{z5JT)t*mbJ(_h-r3*^NFrB#y?ozBB&9QD1 zxFcgBjRo6@OK0>UkiZlFz)KFEx&~7kGqBd#sIoj}O1NOpNn&3*PQ$9#q z3#~2uk^KdeRJG8eWGq1{ksbEZQRiF1-;NXOrk7ts@5V#G_2doUf0}2dETdWqJZhv8 z+fvWPv!KPJW}$`VSR=$5Qj1ZF;m@clnjHkQ!|SS&imDII*uVp+(uoL{d;qqve+_d$ zU-ei+$VO{{6|g=P{ah{9t)KO2UJDiseVWJ%FA!$_qO`+Ww0ayP6(tHTj9#D$aoRTH zFRm`YkEm9F3?$>1N(16Kd0#3sQTkB#q(c)Mqqs_SmGad;zfm9lj@td~+j9I7aiM{N zD)e}K0X3q^1<@{SQ4b`|6gH#im~1c%nfhuXqip}&{=wtG7A#H?29{85%A6XsF?_UY z;80}9e_)T`fp}mtS?+Uvt3Lc;|F(X{B+t$hld~W?f(r+$2m51N`ALmr^eFNlnwCp``%gPgKtUQW?pL=NLoeN~r(N_Al5!@&KwHAS5!E*#a($#zf3cUPqO*#HfrVaoo6S zBJ0id>&;j$STuHv_=4yH%cqC~UrfCa7EkqYa6SAE{E#C-Ec%!GS>Fn{n_O`@YFDVb zGFp9BD%d@q7A*ijK-7ymzXi99jwkpHP>8-b@72pYH|hHxBwz ztn5RPLV;(zN^NFKvpG;!Wc#p#(*1}uU@+)Xv>@XMY zPWfZ}2wVw1g|Agb6|Jd!hg&?~3eiS2&Ij&LSH#>>STQ5lwlu-{uwC>us)=e_m}?Ew zqlyo06lRVGf#s0X1gAO%%}X%x?=awsQ^Z=zWkpHwQ^692*;;!ahR5&^?^ z$aTPUh>0C_z7_CS&F;~6{&TQ$c7svGIZ%O=ts#~Ijf^O)DPs#Ss7e9wgLfptRxFIR z9`gvz8i$uqcgrY5elj&TI#oZj7D-ius&wYYc4bFgtk(x1&F52 z7_IC@6oact6IPMeJ_@d zSc^CVG|6JZm+=!+BZ?oR1+Wiv!U?5{(w5ZYX71OCKNva~qQAtVss5oQu^=#J;g>GNt9uzmzeF~-8F zS{VegFCb8;)aSGo)=s)0_K$H2Gu)S>k0NG&A@0QsW8)a7GC?WTaG{2u*RQiL}4S0T8&m%BoQ$lSE?170WAfC0GqTE zydp;*G5#2nv@C30tQo(mHYL^*{+OenC=VS_2t;jQFZR<>=UV}P)l`@63WKU^rcwJ^ zZ-qfto9kDbVRl4kAdhj$xaEJ`Q7>>4;U}r6U7~GfkLJHEk1%4WQ^iBwCV%AftngssWF;4KG!sNGCvT6|xtwUJmn+LG^5ZQ!W$t&n9K4}VkE!^A}BI>$zQ2V2ZQ;RD!b zVpK*LEG^V%lZQpSgGY@1?mzB?5vR9r5|Pmcj91!9wf6G6v}Tx_$~9rF#4M=ZdHt4d z{DCr7uA*vy_Tz8)Sb7lD(M#wDpc7t=CBPP71IfH?T;Vbv{ygrOG4$=Job{+b?qDV_ zJOoWpu`T~fF93g9NeG3CxCHz$`<}J~?N~qZAbCz(H~tirVdEIJw3B8M;lXGzFd1}y z+8Mhf4vht*)%&j)K8gK9@8deyS1Jv#Gu8ZW{q`@!{OEa_b%3u0lfnK;p@&Ih9cdZO z`3UQb;H~pp*gEki-JhyS#l3he)l*3|ko}W70}{!J(&o(R*XSNLr*|CP*{xqHD>hSk zMx6zol!zA0<<-+JnwoaKxKYemt2|v$i+kEs6{3Vu-a$zg6WmERMdKs8p$rGs54HoN zW<m7q}JAIPT>m%&enOk@$Y zvNNm^&dB@)YOmOYXw2Y``9^R7Jd)kt`Y^kbMFqgCTmd0)mb2xROM?J~a6 z&zPYAQnmgN3bmunw*u>{Bj(upSw+};w5B|-!=sDI(FcxDu25CL9P@;PIn|k})&+#Y zZpdAd$)e(e`X|s!T;iDXtzh-4q7PkHdNVp7Y+$rH1HUq3gvbDktm;J+H)+g@NgoD1Vq<^etkuci)~f8pEoZGW{nU~hDf zOOyfXG^dCa!)Hxt9bNhm&$8zrOzNd9IVylq2UjB|g)LC4!gDAmfjS(=Pq5wm zF4VeFho4oYy!t^ib`@u+M`Rl`Uxo+{FAU>RHV&q@8F9wedt7qOJU7)9dPkk=O^I${ zf?7ccjfLDG`xuYloUw{Jh@Zea05Xawm zTiO2}Arg4GMWPoE60>XX8P6(WB{Uk|r?&1QG&%hzS(Ir6{`9)>J9UKRyG6}qa| zkiSLO=Tm%{W;K8~cp`soTvb21zh&kcwZD4%__UpS#;#BeclDtptee4eYNjb8lJ+3l z4;l-tgzZCh;)hs`D2xmxt%@px#Uulnap$-rvOvuMbwsnuS77_lk`-By$v{!Y_o5@K z#)`Q%V1&=y&iPibbdy#UNZG5J)vX_YSoyq8c)g4d#hp<~odBGKN;UkPlszgq7|D2K zMI7Wl@Pt|;7JU!gHoa~TTx*ngBlf%X;|~u(g&rt`%Mrt9?iFJdZlDoL>rj`gIzBN( zvTbA}HTNakKevC_KJsVO3el#jpc0E#9tp-r%cDD!Cqe^(Ytt97YkuA8`PL+F#hNl* zne)O&XY60BZZ-dlRYw75jIf1erveX*puwnin;2iYF-2N1S~3!}0;)>PC}1aeVEs#L zkjVvEoRRk6D)41#rD%ch6qqp?T@Z**&i>ak8;ZkdM_QYhf|?;IU-XjR#l}buRn5v! zsty{J0{k{>|5R77^|LuZBz%tXiVXzOo&zWUthxd!!Lfg+S1@R0%4t=`d9JF8tE$jV z$b=JD;)NN%%)*kDpq{-U+r>iO0r_V1AS+hG6D`i|LEs@Xs6 zvKT5A5IhCXg))h?!bZU{u!mAlhzzihSW8%*-hmJ^+xl{L+5fu#MYqG-Q2Q+nR;vQh zOGFl0y&hGD{-TnPTob)T{hwy*$GWWJFT@{Ja~wp|SXDeEiZRTpYV?7>u6Hd1&1At( zz?Eq!ly*=~OTnRqXEKyvocrfH7!5WLFAPg! zi_iF5xFdR@M;vp$74*K*RTp?A)qG?*m`8NXen*+Z>(^ABKen0-8+iF#MPRf7;}R`U zYkXl3;dYwm#;iBck0Q#OIWKRY=N4D6)gOz`L-G?7{AVMrU)!C|F<)uND}h+dSV2)^Bvq*O_UXu`9sut9e~4H!PGIW91I9 zTiAD5b|NO(b5$XW|G_nh3{X88i!tlV>lf5-_wcaHZy{sBOkAo5VCqs&(Nr1VM7e0b z%t>V*Jqx2^OyeK>*A`5QyHql~M6S7}s@@D6eiXX}s<3ldH29l1IeBp+L6m-M2Dl?; znq4zFoZ-UM}J)_x9F_O$gWaiO-LzQ`qOdqLY{9x5mTYp@Wo zh0T*1K{Sh+uvl*8#h6FMc%&u#X<)Xr1{xj_Gdd@>P;&}6n)X4*Mt909MUFCK7wuR& z7iP(RRL`d2VdlGy+U=x*dRSf!a>uEzJ!j(8?` z9SVmcD2*`KBNkgKpVVR05cVq91Apba@k$K!+0$(O-1^bpdQ+^T3owWFg1unf0+c^x z-;{Sl!@>e+6&~h#U}M}$_*U?{H8h_bjUMl!$^zB&gYvBMxyq**Ym9dMhI}r0P~i{Hgq6Vh;ho5iVpoFRfOW)r zk}nFqp;sd0JH%Xm$+fBcH1ZE2=8V7hx&b zhjqkKIOcq766?nbeON!%sh_s<6IoZYe%u+hPAkhuJqp=gvVuequs>`fkpvt>5eGI> z)w5Vnf1Ygpn!q2~Q@ksjMk_v$!40u5R*qi6KEnR+wRk6xN2MBZFxhpO4ZBW_70<&nXhk?`s&oX(J30%DF0RAl zC(DQ8r}!4NLN$D-f8dgs7wdo}gmvSGu}rd<*hAJ}3SP>$g4#D8{yfV&ZTCR!el`17 zf0j-4JhTJR7wv-1LY=oFHR+$qdqWBrNBG(aG?r9ryyKMctc*TGzyIa=6yIEYeRr10L zDkts!uiMWH_Q^GSny`P~_Fpn@75-kd?H8lJZrJBH>|EDx?>kytEM7LwbERyn@V#j} zD<0*B{kvpG#OLHQeG=d2Qt?u8)sF7IgRo!6-eXVrxb^g-#VPZ2j?4NhL)VM;s~5xDxz>IFqprAMy4N_GI)u zlVD}mt`FL?KWd)Az%-?jVn>Lzu{3C{SQlbE>@)T=XFTy?`{acE|KZ|8kELtC2Gb?@7 z*x(Mkwzw;2qJCQQOQea=H|*VK*P&k?D#!7T=x*+{yW<{Vuv~4yj$g9Bj@sYM#5`^H zwQOAa>EZ#~o?gG!g_5PeRNj-GpZl6FpB`4ZU}vC3XseB$=cFAuR~)yadBPp`+_UBX z^W~YQOIFSKxUX4z(jDc!?kfMi+s-TwuD+cv_uf-HVSAT~N9@>L>%DWPyq6g}!)I;p zC++uysiVhAugBSG=ed#%&)G99THAAduE-M|x3ioo@1gg*9JOS}^Q>peV>p_(Q*<9Y zXZ;w?dd7}8WyhVl{k)y`1cn|h&q)t-envk%YIpU7eS2a3fBv4fa}j;$==t*5;$y+- z!}dgH%5QfcO%%gb)mw3&JYBYGK=M}Nf60(>(w^XHyUWzZLGZrZ+qmN)e!e^|WCuF2 zpT`A$;n@24$L7d-&D-ctV_Y07o;T0%g4wRirB-p){wHp&GA=fHzC14SxWM-J<4c2Z zbE5PbFcQ2xHslfepOJ(2PQjZD8Z{?M{ZZQFMH^R_?anWj;|h(m8v7c*b@G_YW3K9$ zTQraKi20=BiTfoYsWtOY$_9+i-3E=O?&r>9Cy$+~V@J`m^o3rJm9oEDD)VSCzl)|! zH07~|w@)5*dDIOXb={VlT>V})&R90z7FDl5ycMX8Y`z`(-N#~?^}S)(ARj#WJ@n6-ZGNAOdLI``-a+*g zRSUa%(AvMow0b**SYYEUN^d*$>$78}m+&Xt+Pmo-&*LF^+}5emd!eRc9F&iHfBkz; z`Lst3Z@26hzPq(OIA`{lcfMUNE%REf_fsw3(To4B?%_B_8Rm2Q^>*iczb3|PRfVp% zjr-kqzq2l`Tgf`{+V46WWyD6i`z8@R`5kXIrYFU4eg0h4Fh0{yLm>9OUMdmi z3=^u=t#0imy^Bedj7hJ3%53U*oPE+OKVp9GhSdbGmUTkSw)!rsIqz0(U{ypd%sv`t zEL3^^es+lKive6Qz3W9&#i&Ib&!<$mmww}5&c*=MTbqT%e*Lj%Xh65nOxb4f(60@c z-^&bK=KO9}JM_Dc$L$_g>>jZ4TY<~qqsGC%>Cu$F}}Xrp>Ery@0L1mj$yZmrCn4Ui38ni0mYkse?O~Q57Qg}`jgm>@vk~5#~T02b$Qd#?w}u^n3Ug*dgb1nV4civ zw7cks_+Sg0M_#|ypOnpw|J>cHt5j!_<6nEaWUp|yOIBYV)^};@4yr`izM@Q1chk?- z$N9!_qwCRnquLisCcN}5B1#7_z`#Y>-X=K z$>O}~cQI_7#96&~?WOU0=(>&jo7UUCvkFJUOFc}5R+{uqCPT`kSD(ahRekyEw zKd&)wHuX}ue#>~O*ko6y?tzNM@hbc#yEfmRL>C?X>iwdK$IEQl3w8(NS2#{~2fprJ zb$>kim4}VLNyeN%LG=;Wy%uHlHkjn?)4|JH={mxKWh`#@NDjB`(Jgkkv{4Z z_Z#PvN6n*Neb`7F?&(-1iItCb7{h(Zejl*ktG4b4YXg$UebFo?c^tOS*(cY`zliUAaN(6#*WR47Z_%2p zPWb8dSdo}9&y*d1U)Qmnccay;!gUpYa?U+n=kztOy3e?$>-qZE-1lB# zZ`T!ATZ&aGZ zt8YEg4lTUdJ`3~U)6~J~skJwM?)|klA9|^nzjuD^vG?Bnx%dCabFV-7k@pYX{J`$( zPkvzcy%+xSg@3gB`eRF9c;i;+S&qMZ<-g27GXK4|AAM8%f9`$0b@$4JU)lNWFE9M~ z^mpc8dG*Jq&wk~-cR7Y{w$Tr!8%?#ZHN#lQ5mc%XR5Lx4ZX|`C`oq<~{YD;3s_tlq zq8hwVn|m!azw+_<2fiVWl6no$pf%sNgIAfl^s_Jj_UX4yeDrglzmR*2H;Kq@b+6tS zuSk?8^QISn@$+rahBjxsg*k@l=|g|@#oszTH{Xu>yUpsWo0cWl+|YEn-QtRa|p1#z0TG4vc7($BoVyZFe7*IuC~+mJ2Xntt@SEj3;l`ZC*3 zXDi*KFkKsZd;wK3TTt&i=Fc&Yp1JRM!89%C+MA~qv7YHi$eUv?J6Fn0k7E+o<^J+f z7RPVt`nJ0-JhFP%+W$P0N13AV^y@L&qxWu(U5xeK@E(TrtRua)>*k?lG|D{IdX@T6 zNt-4Y3B8wlZg9_~8v)F{@_Vo4o>R{So6K6vdP7Wlwh~?Wt|!0$eD1TrN&2l>mR`S6 z)BBavzp$M9P5s8olkvNc((ADc%a6Xdlw(PLt=%E?%>B7MMeK!{%qD zrbYhc(@&k4x)gG#Yj3uBtfkhr?XMq**G|;RmYwgrs&~Ak$<<*G-+TLKU)J5VwGw2r zd-8H=@50KeY4+?NpL^=Wzk2N3r`v1uHn&%)N8tS#dW%MSzO4O9)@Ju7c^kb=HY;86 z3SZ-|#x;mpZe7o2CG1Y`*>sgMMHetAeC@a1I@RL5(C`tQ;}7bmd>+T>YZwl)nsLr^ zJH#5q;nXp=o0T@#Yw?*=XQQDn+g&LXw|KoHFg|md@gY6PNPOhleJxmBYV&Pq+=IN= z@S4T^Qi;-w4XGqzRpyoF4nK2Wv9Fl>wSW2YJ*LODRnLjrzTR<3H6QN~AV+ll_B+ed z>rv;Hc+4N4e&-oxZSQ?|`8jj|IOjiE`sN~^{f9S?tllX-ojGRR9COL=j!uc~Vjch* z*Y;Go+pTbKem}NB<1Wtp_a`;uhZWr0>g_hWZ>f#uEq}aQj`s|t$xlPyw!2DttNS+H zTI$fh?VcyJ)%}~UI{Ig?ow<;0v(~^J{aqwWW|Pyl%b{PhU9R$unYdrmwaKAxvrQhi zZ_~BM&%gbPi~s4`2cFG5dDQnp_4DnE>lFp*DMr*2Gk$abj@rNJR~$2D+p${NAbq~y z7-~{~YRCLG>IJ@Iv+T2KF*-Ajdp7N=AN6kLP*pfozurxkOL=x?>eBOX|Lev7x7hCL zpHZxI&dp4kn`thqnWlnEg+aSkylbw9;xnha@*O?aF25DGYrT~M@tM>0MD$oYR$31c zLfo#+^;o(ZTRZEnHmBE8ud|}>sJZ$4iCs7U@fX^ov}{iA@m`I~_RjU|Wwl&-3R(Ns zNNcX&QePj9Q8sXI8KicwUyY|hxZ?4Z`jXuw)uXo<{=JZ;K&C=A1+qZ7y z=Jr~;D&+q;ab&e!bqdY(-0`xi{$g?7W{an5CF!yDt+2Z}y_U9>3_X|m{!WX?n8Bj4 z7J4mRE2*jhl&wEMapl=Itwz{6?ox}X+P4y6+@3^2H%wW$SUhj>>U}ngEoPQ`?X!5* zkt#JcX|lY|QIPvi>q_sn%*k1slNa7^7$YRjer$gpv$>HM_g))vn(bPVCvM%%>BH1l z<7u}_)m$HD#p+zKY#h0lS4_SJ(KEamX4Mpu zb5>oLURIxRbN~Dsx9Fv-tCv^Wpv^YXOPz6&vL9y??XUOGFR#3D3qQ1@`0i_e^!86b z`N12x-*^MU$+FIgD&90l+BX;1>@F{vHK6zIz3|=F=({&=<=&(B((AMK)P6Q$6LY<1 zcTQsx?V*VtB3cSHp6QJq_{6V2vz=ol%~hB&B`Zzkr!CdDO^lt{GHZ$ z)H18zT=@GheDrfqJTY}?|MNduOdt8e=*=>E?5$C`^YW{#hyK@Z&DqM2Gp5s~p80OB zcUUQe$njI8>fne;?ZqAnogO*!`y+?ywP7@ec&70 z*~&d)m6tb)&zK7LQi8q1df`7@Jb4JGxTL7B8Bf&01qAW*it#|M2)-YhPOZ;rw>z4s*uwc;jHY9Afdz@r8E0 z6{ESawP;@Ito`1!F_xYMJa~-}wcSUOYO+>sEZsM`hV@2!DvVsd15nQsqN^_lf)F0+3XO`jXtfAATIBPQK3sOJY zR4de^C5*>$nz|5gW6P0Oyp~~jD^0o)7=4y?jedQW<`|>K6-K}I=B}dnjW2$gH%0y4 z%E5&mqMMR~$J`339yJ70@!R~>N^{nCaC;y--tk6vpB z6KJA`()IT3s7r04PtvYPZBwOB6TK7Xywe>$?W!AYqMvfba5uvme?_0B`X|>4&l?l2 zfA!~P`YTrncfR!_t?`t0eeg%-e|O=>r!V|U8{RJ5#OOI{>-xN0u=3_P%RQu*&HJk_ z{?_Ta`HRb^p4zTGG+kEKQxSYA;eKk*Dojm`qIeCaB^yyx_N6zL=%eqnWcGN|y_BXh z-In_LCVD4V)~6j8#ri^;qo+N&(^ zW%JFI=?gzx{o59-q11Fgov`&@R;{{+RVr4CboCi}>^t+>>c#za#riEx#(du^#r(bV zYj5fuYQpAN#vk z-+TA|d6;24?PF^3>daTac6sg1c2uonx2_vXZ<=-4E)i?HYIK|Jp*B?OGM@hL>t9-Z z@KiD1p4hdyQI%@s+K!6qX2(;y)uHWKPqEn^N?TcIOP0FnJ|Z?{J;fAPf@_cB-JB0< zi{9O?Rr{J9Rq0n5!1O-7{LEADJhSU&J7Ur1M%a`ot5*|M4%$-<((H%|bqDFPzV^(Y z-<+OGQ}32y)JBV!n)astO?{1l1>?0;ifo4&@qhZ|Yp=IO8EB$c()A5(QUsdlnY5LF z_RRWd#+v1MAIqis(Op3}{tU$C`zcL!)uw2r2|Jggl+?#i=%F;n4-Bpi_3LimQj1Ei zu3lbgM?CFgQa%FCQbEAy3q-Jb9ME*Ur%2ZX|8W>T0PlvSznvp zjA#1i)Z&j?P*dAf|D3cO<;C@?snk5qPagaAXC5q8?ceP?e(3jf-=6q4i+}LtpZc}G zeSG`&&*L_FR*M&`kCxZf(9}lJAD?^bL>p!eG-csVS#2n@JJRz$^h`Tu;55}Y>CUxb zzVr5ub~KYZ&1n87kHHH5{KS=K+Yr;oqbD`*(3ZC&x)tx%!S1}-=(}znT7Ko$sWZRO zig)QY(=$^RlQ8q>=K32jQyVw$oo>T=bItS(HF&%&>ILhcYc?}1J!ZuS`m-lLyp(=i z(o7GftBCD<_Lmp7Yp*O?9P(nKqoo}yHZ(I@($-kov;u82{ge6{wBLR0w-?$G$2ZeI zZK`tFuD*vp()uQ8M)d8eZ)s)>h3biPnOl3R@SE+SG{+AS&rhDX??PKNG4G=|vOiTU z7PIztz0;O6CdOnvrfbF1MSRRu@u;oQG+Qj#aWln~ZBG?P?KgZ=s{>uOJvZ(9Yj(_0 fJHw9h^CkO#hkbL_KAkDf6i?XpTzR$~9oP8(3PtKe literal 99258 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 QFRdJ2Evh>I6IS~F0yHwn7ytkO diff --git a/数据库设计关系图/OpenAuthDB.apm b/数据库设计关系图/OpenAuthDB.apm index 456d508f..b82c50aa 100644 --- a/数据库设计关系图/OpenAuthDB.apm +++ b/数据库设计关系图/OpenAuthDB.apm @@ -1,5 +1,5 @@ - + @@ -12,7 +12,7 @@ OpenAuthDB 1430102287 yubaolee -1511955755 +1520672245 Administrator ORG {9C5FE510-8BFA-4205-BF00-FC94E77A24A2} DAT 1430102318 @@ -215,7 +215,7 @@ GenScriptPrev=Yes GenArchiveModel=Yes GenUseSync=No GenSyncChoice=0 -GenSyncArch=D:\Project\OpenAuth.Net\数据库设计关系图\OpenAuthDB.apm +GenSyncArch=C:\MyProject\OpenAuth.Net\数据库设计关系图\OpenAuthDB.apm GenSyncRmg=0 [FolderOptions\Physical Objects\Database Generation\Format] @@ -3967,7 +3967,7 @@ PhysOpts= [ModelOptions\Default Opts\FRMESOB<<WorkloadGroup>>] PhysOpts= -F:\MyProject\OpenAuth.Net\数据库设计关系图\OpenAuthDB.pdm +C:\MyProject\OpenAuth.Net\数据库设计关系图\OpenAuthDB.pdm 9401CEBA-B163-4ADB-AECF-03CE78C0FFF3 @@ -4654,7 +4654,7 @@ DESTINATION 0 新宋体,8,N 1511952169 1511952385 -((53029,-44836), (57529,-36699)) +((52917,-44836), (57641,-36699)) ((55279,-36699),(55279,-44836)) 1 1 @@ -5398,8 +5398,8 @@ DESTINATION 0 新宋体,8,N 1504793917 1505973450 -((-28939,18390), (-3588,20126)) -((-3988,19071),(-22754,19071),(-22754,19501),(-28539,19501)) +((-28939,18390), (-5362,20126)) +((-5762,19071),(-22754,19071),(-22754,19501),(-28539,19501)) 1 1 3 @@ -5422,9 +5422,9 @@ DESTINATION 0 新宋体,8,N 1504793917 -1504794406 -((-10365,21467), (15318,25668)) -((14918,24772),(-4553,24772),(-4553,21867)) +1520667914 +((5251,20642), (16875,22163)) +((14918,21267),(6758,21267)) 1 1 3 @@ -5447,8 +5447,8 @@ DESTINATION 0 新宋体,8,N 1504793917 1504794406 -((6862,12701), (18486,14222)) -((14722,13326),(10176,13326)) +((5153,12701), (16777,14222)) +((14722,13326),(6758,13326)) 1 1 3 @@ -5570,9 +5570,10 @@ LABL 0 新宋体,8,N 1504793917 -1504801532 +1520667920 -1 -((-19282,4619), (10176,21867)) +((-19280,4619), (6758,21867)) +0 3 12615680 1 @@ -5589,6 +5590,7 @@ Keys 0 新宋体,8,N Indexes 0 新宋体,8,N Triggers 0 新宋体,8,N LABL 0 新宋体,8,N +1 @@ -6486,7 +6488,7 @@ Drop=No PrimaryKey 1504799542 Administrator -1511955952 +1520667890 Administrator 主键 newid() @@ -8636,16 +8638,16 @@ Drop=No F289723B-B207-406A-A6C6-61B74DA6C4B4 删除标记 -Delete +DeleteMark 1504793917 Administrator -1519704375 +1520667232 Administrator 删除标记 0 int 1 -CKC_DELETE_FORM +CKC_DELETEMARK_FORM DBE1334F-EA53-451B-BE7B-FED8F4FBBF6F @@ -8662,15 +8664,16 @@ Drop=No 70E1629A-47CE-41CC-AF2F-3AFB457E75D4 有效 -Enabled +Disabled 1504793917 Administrator -1519704375 +1520666617 Administrator 有效 +0 int 1 -CKC_ENABLED_FORM +CKC_DISABLED_FORM 67A15FCD-D635-4AC9-9075-8A6816F61BC3 @@ -8813,13 +8816,13 @@ Drop=No 6E94C4B7-A8A1-4240-BBD0-0A5A170389BB 工作流模板信息表 -WF_SchemeInfo +FlowScheme 1504793917 Administrator -1504799705 +1520667664 Administrator 工作流模板信息表 -CKT_WF_SCHEMEINFO +CKT_FLOWSCHEME @@ -8835,7 +8838,7 @@ Drop=No varchar(50) 50 1 -CKC_ID_WF_SCHEM +CKC_ID_FLOWSCHE @@ -8851,7 +8854,7 @@ Drop=No 流程编号 varchar(50) 50 -CKC_SCHEMECODE_WF_SCHEM +CKC_SCHEMECODE_FLOWSCHE 7C736F1B-8295-4B7A-88D3-EC4802193B58 @@ -8864,7 +8867,7 @@ Drop=No 流程名称 varchar(200) 200 -CKC_SCHEMENAME_WF_SCHEM +CKC_SCHEMENAME_FLOWSCHE 9C4142E0-1473-4AE5-ABAD-6A5325D0AC82 @@ -8877,7 +8880,7 @@ Drop=No 流程分类 varchar(50) 50 -CKC_SCHEMETYPE_WF_SCHEM +CKC_SCHEMETYPE_FLOWSCHE DEB25B20-6415-4533-A711-959A4D39C862 @@ -8890,7 +8893,7 @@ Drop=No 流程内容版本 varchar(50) 50 -CKC_SCHEMEVERSION_WF_SCHEM +CKC_SCHEMEVERSION_FLOWSCHE 3E79F855-E867-4C4F-B4EC-87A292CDC84D @@ -8902,7 +8905,7 @@ Drop=No Administrator 流程模板使用者 varchar(max) -CKC_SCHEMECANUSER_WF_SCHEM +CKC_SCHEMECANUSER_FLOWSCHE 51239569-B322-4CAF-8E0B-8C61AB9EA5BE @@ -8910,11 +8913,13 @@ Drop=No FrmType 1504793917 Administrator -1504798127 +1520666782 Administrator 表单类型 +0 int -CKC_FRMTYPE_WF_SCHEM +1 +CKC_FRMTYPE_FLOWSCHE 27352E05-6B50-42E2-8CDB-D0325885E6F5 @@ -8922,11 +8927,13 @@ Drop=No AuthorizeType 1504793917 Administrator -1504798127 +1520666782 Administrator 模板权限类型0所有人,1指定成员 +0 int -CKC_AUTHORIZETYPE_WF_SCHEM +1 +CKC_AUTHORIZETYPE_FLOWSCHE E238A983-7509-4A3C-B07B-FEBC8A7B8414 @@ -8934,11 +8941,13 @@ Drop=No SortCode 1504793917 Administrator -1504798127 +1520666782 Administrator 排序码 +0 int -CKC_SORTCODE_WF_SCHEM +1 +CKC_SORTCODE_FLOWSCHE 02763158-A58C-489C-92CF-3EE0CDDB4D15 @@ -8946,23 +8955,27 @@ Drop=No DeleteMark 1504793917 Administrator -1504798127 +1520666782 Administrator 删除标记 +0 int -CKC_DELETEMARK_WF_SCHEM +1 +CKC_DELETEMARK_FLOWSCHE CE12EBF2-DD4B-410D-A09D-6DC90C5894AE 有效 -EnabledMark +Disabled 1504793917 Administrator -1504798127 +1520666756 Administrator 有效 +0 int -CKC_ENABLEDMARK_WF_SCHEM +1 +CKC_DISABLED_FLOWSCHE D1F30426-A20F-4F68-8BA3-271E9B4095C1 @@ -8975,7 +8988,7 @@ Drop=No 备注 varchar(200) 200 -CKC_DESCRIPTION_WF_SCHEM +CKC_DESCRIPTION_FLOWSCHE F5CF7B40-B00A-45E3-A138-731523438359 @@ -8983,11 +8996,13 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666756 Administrator 创建时间 +getdate() datetime -CKC_CREATEDATE_WF_SCHEM +1 +CKC_CREATEDATE_FLOWSCHE 76565A5D-20CD-4C19-AAC8-CAB0EE869478 @@ -8995,12 +9010,16 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520667463 Administrator 创建用户主键 +newid() varchar(50) 50 -CKC_CREATEUSERID_WF_SCHEM +CKC_CREATEUSERID_FLOWSCHE + + + 2DC5E2EF-4216-497E-AD0D-2580F16027B0 @@ -9013,7 +9032,7 @@ Drop=No 创建用户 varchar(50) 50 -CKC_CREATEUSERNAME_WF_SCHEM +CKC_CREATEUSERNAME_FLOWSCHE EF364DCF-E73C-4CD6-A877-3FAE6AD4E25F @@ -9025,7 +9044,7 @@ Drop=No Administrator 修改时间 datetime -CKC_MODIFYDATE_WF_SCHEM +CKC_MODIFYDATE_FLOWSCHE 6827F245-C1C8-4FCE-B4A6-21B44EDF7011 @@ -9033,12 +9052,16 @@ Drop=No ModifyUserId 1504793917 Administrator -1504798103 +1520667468 Administrator 修改用户主键 +newid() varchar(50) 50 -CKC_MODIFYUSERID_WF_SCHEM +CKC_MODIFYUSERID_FLOWSCHE + + + 86F0B6C8-1FB1-44B0-B789-803622F8650C @@ -9051,7 +9074,7 @@ Drop=No 修改用户 varchar(50) 50 -CKC_MODIFYUSERNAME_WF_SCHEM +CKC_MODIFYUSERNAME_FLOWSCHE @@ -9063,7 +9086,7 @@ Drop=No Administrator 1504793917 Administrator -PK_WF_SCHEMEINFO +PK_FLOWSCHEME @@ -9072,11 +9095,11 @@ Drop=No D56566D5-30B2-4BCE-B2F6-30D6636EFB4D -WF_SchemeInfo_PK -WF_SchemeInfo_PK +FlowScheme_PK +FlowScheme_PK 1504793917 Administrator -1504793917 +1520668070 Administrator 1 @@ -9103,13 +9126,13 @@ Drop=No AD103B2B-D02F-42A9-8DA0-CB44140C294A 工作流模板内容表 -WF_SchemeContent +FlowSchemeDetail 1504793917 Administrator -1504799379 +1520668059 Administrator 工作流模板内容表 -CKT_WF_SCHEMECONTENT +CKT_FLOWSCHEMEDETAIL @@ -9125,7 +9148,7 @@ Drop=No varchar(50) 50 1 -CKC_ID_WF_SCHEM +CKC_ID_FLOWSCHE @@ -9133,17 +9156,17 @@ Drop=No B3C5EDBE-869A-4661-BA3F-1E4F4ABDC5D1 工作流模板信息主键Id -SchemeInfoId +SchemeId 1504793917 Administrator -1511955755 +1520668938 Administrator 工作流模板信息主键Id newid() varchar(50) 50 1 -CKC_SCHEMEINFOID_WF_SCHEM +CKC_SCHEMEID_FLOWSCHE 1 @@ -9160,7 +9183,7 @@ Drop=No 流程内容版本 varchar(50) 50 -CKC_SCHEMEVERSION_WF_SCHEM +CKC_SCHEMEVERSION_FLOWSCHE 7C182495-7ABC-4558-BDC8-59CE814A4CAD @@ -9172,7 +9195,7 @@ Drop=No Administrator 流程内容 varchar(max) -CKC_SCHEMECONTENT_WF_SCHEM +CKC_SCHEMECONTENT_FLOWSCHE 34135B94-572B-485A-A6A6-9D0B89A96A85 @@ -9180,11 +9203,13 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666817 Administrator 创建时间 +getdate() datetime -CKC_CREATEDATE_WF_SCHEM +1 +CKC_CREATEDATE_FLOWSCHE E590D144-BED4-41DC-8AEF-44DCFAF56A72 @@ -9192,12 +9217,15 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520667448 Administrator 创建用户主键 varchar(50) 50 -CKC_CREATEUSERID_WF_SCHEM +CKC_CREATEUSERID_FLOWSCHE + + + 0D61F1F9-5D80-40C3-B7A3-5A0A4F96E675 @@ -9210,7 +9238,7 @@ Drop=No 创建用户 varchar(50) 50 -CKC_CREATEUSERNAME_WF_SCHEM +CKC_CREATEUSERNAME_FLOWSCHE @@ -9222,7 +9250,7 @@ Drop=No Administrator 1504793917 Administrator -PK_WF_SCHEMECONTENT +PK_FLOWSCHEMEDETAIL @@ -9231,11 +9259,11 @@ Drop=No 6344066F-A6D9-43E7-B8BF-609D5EA778CD -WF_SchemeContent_PK -WF_SchemeContent_PK +FlowSchemeDetail_PK +FlowSchemeDetail_PK 1504793917 Administrator -1504793917 +1520668083 Administrator 1 @@ -9286,13 +9314,13 @@ Drop=No EFC04A8A-B3CE-48F4-99E2-75B47584A766 工作流实例模板对应表 -WF_ProcessScheme +FlowInstanceScheme 1504793917 Administrator -1504799383 +1520667654 Administrator -工作流实例模板对应表 -CKT_WF_PROCESSSCHEME +工作流实例模板对应表,防止创建实例后原模板被改 +CKT_FLOWINSTANCESCHEME @@ -9301,14 +9329,14 @@ Drop=No Id 1504793917 Administrator -1511955755 +1520667961 Administrator 主键Id newid() varchar(50) 50 1 -CKC_ID_WF_PROCE +CKC_ID_FLOWINST @@ -9323,22 +9351,22 @@ Drop=No Administrator 流程模板内容 varchar(max) -CKC_SCHEMECONTENT_WF_PROCE +CKC_SCHEMECONTENT_FLOWINST BA95C41B-6371-4F01-B25C-85EC94DABF77 流程模板ID -SchemeInfoId +SchemeId 1504793917 Administrator -1511955755 +1520672432 Administrator 流程模板ID newid() varchar(50) 50 1 -CKC_SCHEMEINFOID_WF_PROCE +CKC_SCHEMEID_FLOWINST @@ -9354,7 +9382,7 @@ Drop=No 流程内容版本 varchar(50) 50 -CKC_SCHEMEVERSION_WF_PROCE +CKC_SCHEMEVERSION_FLOWINST 1551DC09-4CD3-44B0-AE1D-D99297592F00 @@ -9362,11 +9390,13 @@ Drop=No ProcessType 1504793917 Administrator -1504798127 +1520667088 Administrator 类型(0正常,3草稿) +0 int -CKC_PROCESSTYPE_WF_PROCE +1 +CKC_PROCESSTYPE_FLOWINST @@ -9376,9 +9406,9 @@ Drop=No Id 1504793917 Administrator -1504793917 +1520667961 Administrator -PK_WF_PROCESSSCHEME +PK_FLOWINSTANCESCHEME @@ -9387,11 +9417,11 @@ Drop=No 9DA839F2-03E2-46E3-B98F-56657B64588D -WF_ProcessScheme_PK -WF_ProcessScheme_PK +FlowInstanceScheme_PK +FlowInstanceScheme_PK 1504793917 Administrator -1504793917 +1520667989 Administrator 1 @@ -9399,10 +9429,10 @@ Drop=No -6E9A194A-22FD-4C1D-B8AD-00AF2C5C619B -1504793917 +13E9C0BC-42FA-4CA6-9161-E93E81BDE64D +1520667942 Administrator -1504793917 +1520667961 Administrator @@ -9418,13 +9448,13 @@ Drop=No 806B541D-1B79-40A7-99C8-5E549C918975 工作流流程实例表 -WF_ProcessInstance +FlowInstance 1504793917 Administrator -1504801451 +1520668265 Administrator 工作流流程实例表 -CKT_WF_PROCESSINSTANCE +CKT_FLOWINSTANCE @@ -9440,7 +9470,7 @@ Drop=No varchar(50) 50 1 -CKC_ID_WF_PROCE +CKC_ID_FLOWINST {F5C20738-B05A-4F70-BC90-9B5EB9437766},MSSQLSRV2008,238={BCFA9B3D-F5F0-43CD-AA27-425DD9B634A0},ExtDeftConstName,0= {653C7330-6EF7-4164-90C1-6CF96DB79815},ExtNullConstName,0= {574DBD59-C1E7-4E50-9BC1-2BACD35D92E4},ExtCollation,0= @@ -9452,6 +9482,25 @@ Drop=No +6C3174F2-8C36-4AEB-9235-0F953D0B7536 +流程实例模板Id +InstanceSchemeId +1504793917 +Administrator +1520667807 +Administrator +流程实例模板Id +newid() +varchar(50) +50 +1 +CKC_INSTANCESCHEMEID_FLOWINST +1 + + + + + E98CB59F-CAF9-4449-A01F-A9F255390846 实例编号 Code @@ -9462,9 +9511,9 @@ Drop=No 实例编号 varchar(200) 200 -CKC_CODE_WF_PROCE +CKC_CODE_FLOWINST - + C613C381-A6AC-4DEB-B517-76EB7D425CAA 自定义名称 CustomName @@ -9475,22 +9524,25 @@ Drop=No 自定义名称 varchar(200) 200 -CKC_CUSTOMNAME_WF_PROCE +CKC_CUSTOMNAME_FLOWINST - + 9AE38E11-84C4-401F-97E0-D755CA06AB09 当前节点ID ActivityId 1504793917 Administrator -1504798103 +1520667017 Administrator 当前节点ID varchar(50) 50 -CKC_ACTIVITYID_WF_PROCE +CKC_ACTIVITYID_FLOWINST + + + - + C5FBE742-1619-4297-8FF5-8DB478FFD5A5 当前节点类型 ActivityType @@ -9500,9 +9552,9 @@ Drop=No Administrator 当前节点类型(0会签节点) int -CKC_ACTIVITYTYPE_WF_PROCE +CKC_ACTIVITYTYPE_FLOWINST - + D9D5FBA8-5B4A-4299-8C4B-E5BF92C94431 当前节点名称 ActivityName @@ -9513,26 +9565,7 @@ Drop=No 当前节点名称 varchar(200) 200 -CKC_ACTIVITYNAME_WF_PROCE - - -6C3174F2-8C36-4AEB-9235-0F953D0B7536 -流程实例模板Id -ProcessSchemeId -1504793917 -Administrator -1511955755 -Administrator -流程实例模板Id -newid() -varchar(50) -50 -1 -CKC_PROCESSSCHEMEID_WF_PROCE -1 - - - +CKC_ACTIVITYNAME_FLOWINST DBAC9ACD-A160-49E3-BA18-34ACA955CC43 @@ -9545,7 +9578,7 @@ Drop=No newid() varchar(50) 50 -CKC_PREVIOUSID_WF_PROCE +CKC_PREVIOUSID_FLOWINST @@ -9556,10 +9589,12 @@ Drop=No FrmType 1504801424 Administrator -1504801451 +1520667609 Administrator +0 int -CKC_FRMTYPE_WF_PROCE +1 +CKC_FRMTYPE_FLOWINST F969B35E-77F6-4658-834C-AB61B18A1B0B @@ -9572,19 +9607,21 @@ Drop=No 流程类型 varchar(50) 50 -CKC_SCHEMETYPE_WF_PROCE +CKC_SCHEMETYPE_FLOWINST 06748220-8AED-4D9D-B1BB-11CC17633057 有效标志(0暂停,1正常运行,3草稿) -EnabledMark +Disabled 1504793917 Administrator -1504798127 +1520667609 Administrator 有效标志 +0 int -CKC_ENABLEDMARK_WF_PROCE +1 +CKC_DISABLED_FLOWINST 13E11AE5-26B8-444A-9210-AC46929DE9BA @@ -9592,11 +9629,13 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666991 Administrator 创建时间 +getdate() datetime -CKC_CREATEDATE_WF_PROCE +1 +CKC_CREATEDATE_FLOWINST 11066BC1-6BBB-4A41-AD07-9B47EF4E2B35 @@ -9604,13 +9643,12 @@ Drop=No CreateUserId 1504793917 Administrator -1511955952 +1520667171 Administrator 创建用户主键 -newid() varchar(50) 50 -CKC_CREATEUSERID_WF_PROCE +CKC_CREATEUSERID_FLOWINST @@ -9626,19 +9664,21 @@ Drop=No 创建用户 varchar(50) 50 -CKC_CREATEUSERNAME_WF_PROCE +CKC_CREATEUSERNAME_FLOWINST 3B6D943B-675D-4216-AF4F-E6B92EF6D791 等级 -wfLevel +FlowLevel 1504793917 Administrator -1504798127 +1520667807 Administrator 等级 +0 int -CKC_WFLEVEL_WF_PROCE +1 +CKC_FLOWLEVEL_FLOWINST F45676E2-9A52-4630-BCCF-60D48F4C2B56 @@ -9651,19 +9691,21 @@ Drop=No 实例备注 varchar(200) 200 -CKC_DESCRIPTION_WF_PROCE +CKC_DESCRIPTION_FLOWINST BCAC5426-B9D9-410F-8F34-38405BF65C51 是否完成(0运行中,1运行结束,2被召回,3不同意,4表示被驳回) -isFinish +IsFinish 1504793917 Administrator -1504798127 +1520667807 Administrator 是否完成 +0 int -CKC_ISFINISH_WF_PROCE +1 +CKC_ISFINISH_FLOWINST 93828232-E3F3-4E75-9088-9554278FEF35 @@ -9676,7 +9718,7 @@ Drop=No 执行人 varchar(1000) 1000 -CKC_MAKERLIST_WF_PROCE +CKC_MAKERLIST_FLOWINST @@ -9688,7 +9730,7 @@ Drop=No Administrator 1504793917 Administrator -PK_WF_PROCESSINSTANCE +PK_FLOWINSTANCE @@ -9697,11 +9739,11 @@ Drop=No 1925AD3C-50D1-4A4E-8EBE-201B4DAADA05 -WF_ProcessInstance_PK -WF_ProcessInstance_PK +FlowInstance_PK +FlowInstance_PK 1504793917 Administrator -1504793917 +1520668005 Administrator 1 @@ -9739,7 +9781,7 @@ Drop=No 1504793917 Administrator - + @@ -9752,13 +9794,13 @@ Drop=No F3EB533C-87D3-4BF1-A09D-7C7585903A0C 工作流实例流转历史记录 -WF_ProcessTransitionHistory +FlowInstanceTransitionHistory 1504793917 Administrator -1504799387 +1520667693 Administrator 工作流实例流转历史记录 -CKT_WF_PROCESSTRANSITIONHISTOR +CKT_FLOWINSTANCETRANSITIONHIST @@ -9774,25 +9816,24 @@ Drop=No varchar(50) 50 1 -CKC_ID_WF_PROCE +CKC_ID_FLOWINST 7C5A0D67-CCDC-4AC6-A24E-5D66AB0853FC -实例进程Id -ProcessId +实例Id +InstanceId 1504793917 Administrator -1511955755 +1520668927 Administrator -实例进程Id -newid() +实例Id varchar(50) 50 1 -CKC_PROCESSID_WF_PROCE +CKC_INSTANCEID_FLOWINST 1 @@ -9801,78 +9842,84 @@ Drop=No 743F4559-979B-47C5-8ACF-75241BAA47D7 开始节点Id -fromNodeId +FromNodeId 1504793917 Administrator -1504798103 +1520667870 Administrator 开始节点Id varchar(50) 50 -CKC_FROMNODEID_WF_PROCE +CKC_FROMNODEID_FLOWINST + + + 8F5CD3F1-6EE0-44AB-82AA-745BA5B3283C 开始节点类型 -fromNodeType +FromNodeType 1504793917 Administrator -1504798127 +1520667870 Administrator 开始节点类型 int -CKC_FROMNODETYPE_WF_PROCE +CKC_FROMNODETYPE_FLOWINST 01335D64-4088-4AC7-B52B-B8E24E0D3783 开始节点名称 -fromNodeName +FromNodeName 1504793917 Administrator -1504798105 +1520667870 Administrator 开始节点名称 varchar(200) 200 -CKC_FROMNODENAME_WF_PROCE +CKC_FROMNODENAME_FLOWINST F6B2AB11-B4DC-4DCA-8BA0-45F67A3CB869 结束节点Id -toNodeId +ToNodeId 1504793917 Administrator -1504798103 +1520667870 Administrator 结束节点Id varchar(50) 50 -CKC_TONODEID_WF_PROCE +CKC_TONODEID_FLOWINST + + + D1AE7CD3-4DF7-4121-B218-693CC95E6DA0 结束节点类型 -toNodeType +ToNodeType 1504793917 Administrator -1504798127 +1520667870 Administrator 结束节点类型 int -CKC_TONODETYPE_WF_PROCE +CKC_TONODETYPE_FLOWINST 526569E2-B056-4C0A-ABE7-2D48FC09C6DD 结束节点名称 -toNodeName +ToNodeName 1504793917 Administrator -1504798105 +1520667870 Administrator 结束节点名称 varchar(200) 200 -CKC_TONODENAME_WF_PROCE +CKC_TONODENAME_FLOWINST F9CE9DEF-DEE9-415B-ACFA-DD9A55DC540D @@ -9880,23 +9927,27 @@ Drop=No TransitionSate 1504793917 Administrator -1504798127 +1520666893 Administrator 转化状态 +0 int -CKC_TRANSITIONSATE_WF_PROCE +1 +CKC_TRANSITIONSATE_FLOWINST 86A42378-0EB9-4946-914D-C44837F36FD2 是否结束 -isFinish +IsFinish 1504793917 Administrator -1504798127 +1520667870 Administrator 是否结束 +0 int -CKC_ISFINISH_WF_PROCE +1 +CKC_ISFINISH_FLOWINST 020FBF1C-A9B3-45D2-A5E7-352CAE6EB5B2 @@ -9904,11 +9955,13 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520667890 Administrator 转化时间 +getdate() datetime -CKC_CREATEDATE_WF_PROCE +1 +CKC_CREATEDATE_FLOWINST C41BA484-8C23-4409-94C5-37A681A4B751 @@ -9916,12 +9969,15 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520667890 Administrator 操作人Id varchar(50) 50 -CKC_CREATEUSERID_WF_PROCE +CKC_CREATEUSERID_FLOWINST + + + 484B225D-4A49-4E25-994B-20CBD86EFAB3 @@ -9934,7 +9990,7 @@ Drop=No 操作人名称 varchar(50) 50 -CKC_CREATEUSERNAME_WF_PROCE +CKC_CREATEUSERNAME_FLOWINST @@ -9946,7 +10002,7 @@ Drop=No Administrator 1504793917 Administrator -PK_WF_PROCESSTRANSITIONHISTORY +PK_FLOWINSTANCETRANSITIONHISTO @@ -9955,11 +10011,11 @@ Drop=No 12BCD2CF-67EA-42C4-ACDB-AA613F210133 -WF_ProcessTransitionHistory_PK -WF_ProcessTransitionHistory_PK +FlowInstanceTransitionHistory_PK +FlowInstanceTransitionHistory_PK 1504793917 Administrator -1504793917 +1520668042 Administrator 1 @@ -10010,13 +10066,13 @@ Drop=No 08CC0E81-7942-4AA3-B076-7FAE23F02687 工作流实例操作记录 -WF_ProcessOperationHistory +FlowInstanceOperationHistory 1504793917 Administrator -1504799391 +1520667683 Administrator 工作流实例操作记录 -CKT_WF_PROCESSOPERATIONHISTORY +CKT_FLOWINSTANCEOPERATIONHISTO @@ -10032,7 +10088,7 @@ Drop=No varchar(50) 50 1 -CKC_ID_WF_PROCE +CKC_ID_FLOWINST @@ -10040,17 +10096,16 @@ Drop=No AC4E6E69-039E-4AFB-BA69-51EAB41557CE 实例进程Id -ProcessId +InstanceId 1504793917 Administrator -1511955755 +1520672179 Administrator 实例进程Id -newid() varchar(50) 50 1 -CKC_PROCESSID_WF_PROCE +CKC_INSTANCEID_FLOWINST 1 @@ -10067,7 +10122,7 @@ Drop=No 操作内容 varchar(200) 200 -CKC_CONTENT_WF_PROCE +CKC_CONTENT_FLOWINST 9667F770-CE13-405C-B3DD-A35989433245 @@ -10075,11 +10130,13 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666939 Administrator 创建时间 +getdate() datetime -CKC_CREATEDATE_WF_PROCE +1 +CKC_CREATEDATE_FLOWINST 5FFFCB89-400D-4F2F-9CF3-727051E2E6D3 @@ -10087,12 +10144,16 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520666950 Administrator 创建用户主键 +newid() varchar(50) 50 -CKC_CREATEUSERID_WF_PROCE +CKC_CREATEUSERID_FLOWINST + + + 01E8EC4C-BE39-4437-8733-63A77161290F @@ -10105,7 +10166,7 @@ Drop=No 创建用户 varchar(50) 50 -CKC_CREATEUSERNAME_WF_PROCE +CKC_CREATEUSERNAME_FLOWINST @@ -10117,7 +10178,7 @@ Drop=No Administrator 1504793917 Administrator -PK_WF_PROCESSOPERATIONHISTORY +PK_FLOWINSTANCEOPERATIONHISTOR @@ -10126,11 +10187,11 @@ Drop=No F110B6FA-890F-46C0-A830-B030E5409F7E -WF_ProcessOperationHistory_PK -WF_ProcessOperationHistory_PK +FlowInstanceOperationHistory_PK +FlowInstanceOperationHistory_PK 1504793917 Administrator -1504793917 +1520668027 Administrator 1 @@ -10974,7 +11035,7 @@ Drop=No 1504799379 Administrator 0 -FK_WF_SCHEM_RELATIONS_WF_SCHEM +FK_FLOWSCHE_RELATIONS_FLOWSCHE 0..* 1 1 @@ -11009,7 +11070,7 @@ Drop=No 1504799383 Administrator 0 -FK_WF_PROCE_RELATIONS_WF_PROCE +FK_FLOWINST_RELATIONS_FLOWINST 0..* 1 1 @@ -11030,7 +11091,7 @@ Drop=No - + @@ -11044,7 +11105,7 @@ Drop=No 1504799391 Administrator 0 -FK_WF_PROCE_RELATIONS_WF_PROCE +FK_FLOWINST_RELATIONS_FLOWINST 0..* 1 1 @@ -11079,7 +11140,7 @@ Drop=No 1504799387 Administrator 0 -FK_WF_PROCE_RELATIONS_WF_PROCE +FK_FLOWINST_RELATIONS_FLOWINST 0..* 1 1 diff --git a/数据库设计关系图/OpenAuthDB.pdm b/数据库设计关系图/OpenAuthDB.pdm index 89613da0..8a585697 100644 --- a/数据库设计关系图/OpenAuthDB.pdm +++ b/数据库设计关系图/OpenAuthDB.pdm @@ -1,5 +1,5 @@ - + @@ -12,7 +12,7 @@ OpenAuthDB 1430102287 yubaolee -1511955755 +1520672245 Administrator ORG {9C5FE510-8BFA-4205-BF00-FC94E77A24A2} DAT 1430102318 @@ -215,7 +215,7 @@ GenScriptPrev=Yes GenArchiveModel=Yes GenUseSync=No GenSyncChoice=0 -GenSyncArch=D:\Project\OpenAuth.Net\数据库设计关系图\OpenAuthDB.apm +GenSyncArch=C:\MyProject\OpenAuth.Net\数据库设计关系图\OpenAuthDB.apm GenSyncRmg=0 [FolderOptions\Physical Objects\Database Generation\Format] @@ -3967,7 +3967,7 @@ PhysOpts= [ModelOptions\Default Opts\FRMESOB<<WorkloadGroup>>] PhysOpts= -F:\MyProject\OpenAuth.Net\数据库设计关系图\OpenAuthDB.pdm +C:\MyProject\OpenAuth.Net\数据库设计关系图\OpenAuthDB.pdm 9401CEBA-B163-4ADB-AECF-03CE78C0FFF3 @@ -4654,7 +4654,7 @@ DESTINATION 0 新宋体,8,N 1511952169 1511952385 -((53029,-44836), (57529,-36699)) +((52917,-44836), (57641,-36699)) ((55279,-36699),(55279,-44836)) 1 1 @@ -5398,8 +5398,8 @@ DESTINATION 0 新宋体,8,N 1504793917 1505973450 -((-28939,18390), (-3588,20126)) -((-3988,19071),(-22754,19071),(-22754,19501),(-28539,19501)) +((-28939,18390), (-5362,20126)) +((-5762,19071),(-22754,19071),(-22754,19501),(-28539,19501)) 1 1 3 @@ -5422,9 +5422,9 @@ DESTINATION 0 新宋体,8,N 1504793917 -1504794406 -((-10365,21467), (15318,25668)) -((14918,24772),(-4553,24772),(-4553,21867)) +1520667914 +((5251,20642), (16875,22163)) +((14918,21267),(6758,21267)) 1 1 3 @@ -5447,8 +5447,8 @@ DESTINATION 0 新宋体,8,N 1504793917 1504794406 -((6862,12701), (18486,14222)) -((14722,13326),(10176,13326)) +((5153,12701), (16777,14222)) +((14722,13326),(6758,13326)) 1 1 3 @@ -5570,9 +5570,10 @@ LABL 0 新宋体,8,N 1504793917 -1504801532 +1520667920 -1 -((-19282,4619), (10176,21867)) +((-19280,4619), (6758,21867)) +0 3 12615680 1 @@ -5589,6 +5590,7 @@ Keys 0 新宋体,8,N Indexes 0 新宋体,8,N Triggers 0 新宋体,8,N LABL 0 新宋体,8,N +1 @@ -6486,7 +6488,7 @@ Drop=No PrimaryKey 1504799542 Administrator -1511955952 +1520667890 Administrator 主键 newid() @@ -8545,10 +8547,10 @@ Drop=No F289723B-B207-406A-A6C6-61B74DA6C4B4 删除标记 -Delete +DeleteMark 1504793917 Administrator -1519704375 +1520667232 Administrator 删除标记 0 @@ -8569,12 +8571,13 @@ Drop=No 70E1629A-47CE-41CC-AF2F-3AFB457E75D4 有效 -Enabled +Disabled 1504793917 Administrator -1519704375 +1520666617 Administrator 有效 +0 int 1 @@ -8711,10 +8714,10 @@ Drop=No 6E94C4B7-A8A1-4240-BBD0-0A5A170389BB 工作流模板信息表 -WF_SchemeInfo +FlowScheme 1504793917 Administrator -1504799705 +1520667664 Administrator 工作流模板信息表 @@ -8801,10 +8804,12 @@ Drop=No FrmType 1504793917 Administrator -1504798127 +1520666782 Administrator 表单类型 +0 int +1 27352E05-6B50-42E2-8CDB-D0325885E6F5 @@ -8812,10 +8817,12 @@ Drop=No AuthorizeType 1504793917 Administrator -1504798127 +1520666782 Administrator 模板权限类型0所有人,1指定成员 +0 int +1 E238A983-7509-4A3C-B07B-FEBC8A7B8414 @@ -8823,10 +8830,12 @@ Drop=No SortCode 1504793917 Administrator -1504798127 +1520666782 Administrator 排序码 +0 int +1 02763158-A58C-489C-92CF-3EE0CDDB4D15 @@ -8834,21 +8843,25 @@ Drop=No DeleteMark 1504793917 Administrator -1504798127 +1520666782 Administrator 删除标记 +0 int +1 CE12EBF2-DD4B-410D-A09D-6DC90C5894AE 有效 -EnabledMark +Disabled 1504793917 Administrator -1504798127 +1520666756 Administrator 有效 +0 int +1 D1F30426-A20F-4F68-8BA3-271E9B4095C1 @@ -8868,10 +8881,12 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666756 Administrator 创建时间 +getdate() datetime +1 76565A5D-20CD-4C19-AAC8-CAB0EE869478 @@ -8879,11 +8894,15 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520667463 Administrator 创建用户主键 +newid() varchar(50) 50 + + + 2DC5E2EF-4216-497E-AD0D-2580F16027B0 @@ -8914,11 +8933,15 @@ Drop=No ModifyUserId 1504793917 Administrator -1504798103 +1520667468 Administrator 修改用户主键 +newid() varchar(50) 50 + + + 86F0B6C8-1FB1-44B0-B789-803622F8650C @@ -8950,11 +8973,11 @@ Drop=No D56566D5-30B2-4BCE-B2F6-30D6636EFB4D -WF_SchemeInfo_PK -WF_SchemeInfo_PK +FlowScheme_PK +FlowScheme_PK 1504793917 Administrator -1504793917 +1520668070 Administrator 1 @@ -8981,10 +9004,10 @@ Drop=No AD103B2B-D02F-42A9-8DA0-CB44140C294A 工作流模板内容表 -WF_SchemeContent +FlowSchemeDetail 1504793917 Administrator -1504799379 +1520668059 Administrator 工作流模板内容表 @@ -9009,10 +9032,10 @@ Drop=No B3C5EDBE-869A-4661-BA3F-1E4F4ABDC5D1 工作流模板信息主键Id -SchemeInfoId +SchemeId 1504793917 Administrator -1511955755 +1520668938 Administrator 工作流模板信息主键Id newid() @@ -9053,10 +9076,12 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666817 Administrator 创建时间 +getdate() datetime +1 E590D144-BED4-41DC-8AEF-44DCFAF56A72 @@ -9064,11 +9089,14 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520667448 Administrator 创建用户主键 varchar(50) 50 + + + 0D61F1F9-5D80-40C3-B7A3-5A0A4F96E675 @@ -9100,11 +9128,11 @@ Drop=No 6344066F-A6D9-43E7-B8BF-609D5EA778CD -WF_SchemeContent_PK -WF_SchemeContent_PK +FlowSchemeDetail_PK +FlowSchemeDetail_PK 1504793917 Administrator -1504793917 +1520668083 Administrator 1 @@ -9155,12 +9183,12 @@ Drop=No EFC04A8A-B3CE-48F4-99E2-75B47584A766 工作流实例模板对应表 -WF_ProcessScheme +FlowInstanceScheme 1504793917 Administrator -1504799383 +1520667654 Administrator -工作流实例模板对应表 +工作流实例模板对应表,防止创建实例后原模板被改 @@ -9169,7 +9197,7 @@ Drop=No Id 1504793917 Administrator -1511955755 +1520667961 Administrator 主键Id newid() @@ -9194,10 +9222,10 @@ Drop=No BA95C41B-6371-4F01-B25C-85EC94DABF77 流程模板ID -SchemeInfoId +SchemeId 1504793917 Administrator -1511955755 +1520672432 Administrator 流程模板ID newid() @@ -9226,10 +9254,12 @@ Drop=No ProcessType 1504793917 Administrator -1504798127 +1520667088 Administrator 类型(0正常,3草稿) +0 int +1 @@ -9239,7 +9269,7 @@ Drop=No Id 1504793917 Administrator -1504793917 +1520667961 Administrator @@ -9249,11 +9279,11 @@ Drop=No 9DA839F2-03E2-46E3-B98F-56657B64588D -WF_ProcessScheme_PK -WF_ProcessScheme_PK +FlowInstanceScheme_PK +FlowInstanceScheme_PK 1504793917 Administrator -1504793917 +1520667989 Administrator 1 @@ -9261,10 +9291,10 @@ Drop=No -6E9A194A-22FD-4C1D-B8AD-00AF2C5C619B -1504793917 +13E9C0BC-42FA-4CA6-9161-E93E81BDE64D +1520667942 Administrator -1504793917 +1520667961 Administrator @@ -9280,10 +9310,10 @@ Drop=No 806B541D-1B79-40A7-99C8-5E549C918975 工作流流程实例表 -WF_ProcessInstance +FlowInstance 1504793917 Administrator -1504801451 +1520668265 Administrator 工作流流程实例表 @@ -9312,6 +9342,24 @@ Drop=No +6C3174F2-8C36-4AEB-9235-0F953D0B7536 +流程实例模板Id +InstanceSchemeId +1504793917 +Administrator +1520667807 +Administrator +流程实例模板Id +newid() +varchar(50) +50 +1 +1 + + + + + E98CB59F-CAF9-4449-A01F-A9F255390846 实例编号 Code @@ -9323,7 +9371,7 @@ Drop=No varchar(200) 200 - + C613C381-A6AC-4DEB-B517-76EB7D425CAA 自定义名称 CustomName @@ -9335,19 +9383,22 @@ Drop=No varchar(200) 200 - + 9AE38E11-84C4-401F-97E0-D755CA06AB09 当前节点ID ActivityId 1504793917 Administrator -1504798103 +1520667017 Administrator 当前节点ID varchar(50) 50 + + + - + C5FBE742-1619-4297-8FF5-8DB478FFD5A5 当前节点类型 ActivityType @@ -9358,7 +9409,7 @@ Drop=No 当前节点类型(0会签节点) int - + D9D5FBA8-5B4A-4299-8C4B-E5BF92C94431 当前节点名称 ActivityName @@ -9370,24 +9421,6 @@ Drop=No varchar(200) 200 - -6C3174F2-8C36-4AEB-9235-0F953D0B7536 -流程实例模板Id -ProcessSchemeId -1504793917 -Administrator -1511955755 -Administrator -流程实例模板Id -newid() -varchar(50) -50 -1 -1 - - - - DBAC9ACD-A160-49E3-BA18-34ACA955CC43 前一个ID @@ -9409,9 +9442,11 @@ Drop=No FrmType 1504801424 Administrator -1504801451 +1520667609 Administrator +0 int +1 F969B35E-77F6-4658-834C-AB61B18A1B0B @@ -9428,13 +9463,15 @@ Drop=No 06748220-8AED-4D9D-B1BB-11CC17633057 有效标志(0暂停,1正常运行,3草稿) -EnabledMark +Disabled 1504793917 Administrator -1504798127 +1520667609 Administrator 有效标志 +0 int +1 13E11AE5-26B8-444A-9210-AC46929DE9BA @@ -9442,10 +9479,12 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666991 Administrator 创建时间 +getdate() datetime +1 11066BC1-6BBB-4A41-AD07-9B47EF4E2B35 @@ -9453,10 +9492,9 @@ Drop=No CreateUserId 1504793917 Administrator -1511955952 +1520667171 Administrator 创建用户主键 -newid() varchar(50) 50 @@ -9478,13 +9516,15 @@ Drop=No 3B6D943B-675D-4216-AF4F-E6B92EF6D791 等级 -wfLevel +FlowLevel 1504793917 Administrator -1504798127 +1520667807 Administrator 等级 +0 int +1 F45676E2-9A52-4630-BCCF-60D48F4C2B56 @@ -9501,13 +9541,15 @@ Drop=No BCAC5426-B9D9-410F-8F34-38405BF65C51 是否完成(0运行中,1运行结束,2被召回,3不同意,4表示被驳回) -isFinish +IsFinish 1504793917 Administrator -1504798127 +1520667807 Administrator 是否完成 +0 int +1 93828232-E3F3-4E75-9088-9554278FEF35 @@ -9539,11 +9581,11 @@ Drop=No 1925AD3C-50D1-4A4E-8EBE-201B4DAADA05 -WF_ProcessInstance_PK -WF_ProcessInstance_PK +FlowInstance_PK +FlowInstance_PK 1504793917 Administrator -1504793917 +1520668005 Administrator 1 @@ -9581,7 +9623,7 @@ Drop=No 1504793917 Administrator - + @@ -9594,10 +9636,10 @@ Drop=No F3EB533C-87D3-4BF1-A09D-7C7585903A0C 工作流实例流转历史记录 -WF_ProcessTransitionHistory +FlowInstanceTransitionHistory 1504793917 Administrator -1504799387 +1520667693 Administrator 工作流实例流转历史记录 @@ -9621,14 +9663,13 @@ Drop=No 7C5A0D67-CCDC-4AC6-A24E-5D66AB0853FC -实例进程Id -ProcessId +实例Id +InstanceId 1504793917 Administrator -1511955755 +1520668927 Administrator -实例进程Id -newid() +实例Id varchar(50) 50 1 @@ -9640,22 +9681,25 @@ Drop=No 743F4559-979B-47C5-8ACF-75241BAA47D7 开始节点Id -fromNodeId +FromNodeId 1504793917 Administrator -1504798103 +1520667870 Administrator 开始节点Id varchar(50) 50 + + + 8F5CD3F1-6EE0-44AB-82AA-745BA5B3283C 开始节点类型 -fromNodeType +FromNodeType 1504793917 Administrator -1504798127 +1520667870 Administrator 开始节点类型 int @@ -9663,10 +9707,10 @@ Drop=No 01335D64-4088-4AC7-B52B-B8E24E0D3783 开始节点名称 -fromNodeName +FromNodeName 1504793917 Administrator -1504798105 +1520667870 Administrator 开始节点名称 varchar(200) @@ -9675,22 +9719,25 @@ Drop=No F6B2AB11-B4DC-4DCA-8BA0-45F67A3CB869 结束节点Id -toNodeId +ToNodeId 1504793917 Administrator -1504798103 +1520667870 Administrator 结束节点Id varchar(50) 50 + + + D1AE7CD3-4DF7-4121-B218-693CC95E6DA0 结束节点类型 -toNodeType +ToNodeType 1504793917 Administrator -1504798127 +1520667870 Administrator 结束节点类型 int @@ -9698,10 +9745,10 @@ Drop=No 526569E2-B056-4C0A-ABE7-2D48FC09C6DD 结束节点名称 -toNodeName +ToNodeName 1504793917 Administrator -1504798105 +1520667870 Administrator 结束节点名称 varchar(200) @@ -9713,21 +9760,25 @@ Drop=No TransitionSate 1504793917 Administrator -1504798127 +1520666893 Administrator 转化状态 +0 int +1 86A42378-0EB9-4946-914D-C44837F36FD2 是否结束 -isFinish +IsFinish 1504793917 Administrator -1504798127 +1520667870 Administrator 是否结束 +0 int +1 020FBF1C-A9B3-45D2-A5E7-352CAE6EB5B2 @@ -9735,10 +9786,12 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520667890 Administrator 转化时间 +getdate() datetime +1 C41BA484-8C23-4409-94C5-37A681A4B751 @@ -9746,11 +9799,14 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520667890 Administrator 操作人Id varchar(50) 50 + + + 484B225D-4A49-4E25-994B-20CBD86EFAB3 @@ -9782,11 +9838,11 @@ Drop=No 12BCD2CF-67EA-42C4-ACDB-AA613F210133 -WF_ProcessTransitionHistory_PK -WF_ProcessTransitionHistory_PK +FlowInstanceTransitionHistory_PK +FlowInstanceTransitionHistory_PK 1504793917 Administrator -1504793917 +1520668042 Administrator 1 @@ -9837,10 +9893,10 @@ Drop=No 08CC0E81-7942-4AA3-B076-7FAE23F02687 工作流实例操作记录 -WF_ProcessOperationHistory +FlowInstanceOperationHistory 1504793917 Administrator -1504799391 +1520667683 Administrator 工作流实例操作记录 @@ -9865,13 +9921,12 @@ Drop=No AC4E6E69-039E-4AFB-BA69-51EAB41557CE 实例进程Id -ProcessId +InstanceId 1504793917 Administrator -1511955755 +1520672179 Administrator 实例进程Id -newid() varchar(50) 50 1 @@ -9898,10 +9953,12 @@ Drop=No CreateDate 1504793917 Administrator -1504798129 +1520666939 Administrator 创建时间 +getdate() datetime +1 5FFFCB89-400D-4F2F-9CF3-727051E2E6D3 @@ -9909,11 +9966,15 @@ Drop=No CreateUserId 1504793917 Administrator -1504798103 +1520666950 Administrator 创建用户主键 +newid() varchar(50) 50 + + + 01E8EC4C-BE39-4437-8733-63A77161290F @@ -9945,11 +10006,11 @@ Drop=No F110B6FA-890F-46C0-A830-B030E5409F7E -WF_ProcessOperationHistory_PK -WF_ProcessOperationHistory_PK +FlowInstanceOperationHistory_PK +FlowInstanceOperationHistory_PK 1504793917 Administrator -1504793917 +1520668027 Administrator 1 @@ -10824,7 +10885,7 @@ Drop=No - +