OpenAuth.Net/OpenAuth.Mvc/Areas/FlowManage/Controllers/FlowInstancesController.cs

241 lines
6.8 KiB
C#
Raw Normal View History

2017-02-06 19:11:21 +08:00
using Infrastructure;
using OpenAuth.App;
using OpenAuth.App.SSO;
2017-02-06 18:28:36 +08:00
using OpenAuth.Domain;
using OpenAuth.Mvc.Controllers;
2017-02-06 19:11:21 +08:00
using System;
using System.Web.Mvc;
namespace OpenAuth.Mvc.Areas.FlowManage.Controllers
{
/// <summary>
/// 通用申请流程处理
/// <para>李玉宝新增于2016-09-08 19:21:59</para>
/// </summary>
public class FlowInstancesController : BaseController
{
private WFProcessInstanceService _app;
2017-02-06 19:11:21 +08:00
public FlowInstancesController()
{
_app = AutofacExt.GetFromFac<WFProcessInstanceService>();
}
2017-01-23 13:47:37 +08:00
#region
2017-01-24 18:51:27 +08:00
public ActionResult Index()
2017-01-23 13:47:37 +08:00
{
return View();
}
2017-01-24 18:51:27 +08:00
2017-02-06 19:11:21 +08:00
/// <summary>
/// 进度查看
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult ProcessLookForm()
{
return View();
}
2017-01-24 18:51:27 +08:00
/// <summary>
/// 审核流程
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult VerificationForm()
{
return View();
}
2017-02-06 19:11:21 +08:00
/// <summary>
/// 创建流程实例视图
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult FlowProcessNewForm()
{
2017-02-06 19:11:21 +08:00
return View();
}
/// <summary>
2017-02-06 19:11:21 +08:00
/// 流程监控
/// </summary>
/// <returns></returns>
[HttpGet]
2017-02-06 19:11:21 +08:00
public ActionResult MonitoringIndex()
{
return View();
}
/// <summary>
2017-02-06 19:11:21 +08:00
/// 流程指派
/// </summary>
2017-02-06 19:11:21 +08:00
/// <returns></returns>
[HttpGet]
public ActionResult DesignationIndex()
{
2017-02-06 19:11:21 +08:00
return View();
}
2017-02-06 19:11:21 +08:00
/// <summary>
/// 流程进度查看
/// </summary>
/// <returns></returns>\
[HttpGet]
public ActionResult ProcessLookFrom()
{
return View();
}
2017-02-06 18:28:36 +08:00
/// <summary>
2017-02-06 19:11:21 +08:00
/// 流程指派
2017-02-06 18:28:36 +08:00
/// </summary>
/// <returns></returns>
[HttpGet]
2017-02-06 19:11:21 +08:00
public ActionResult ProcessDesignate()
2017-02-06 18:28:36 +08:00
{
return View();
}
2017-02-06 19:11:21 +08:00
#endregion
2017-02-06 18:28:36 +08:00
#region
2017-02-06 19:11:21 +08:00
2017-02-06 18:28:36 +08:00
/// <summary>
/// 创建流程实例
/// </summary>
/// <param name="wfSchemeInfoId">流程模板信息Id</param>
/// <param name="frmData">表单数据</param>
/// <param name="type">0发起3草稿</param>
/// <returns></returns>
[HttpPost]
2017-02-06 19:11:21 +08:00
public string CreateProcess(Guid wfSchemeInfoId, string wfProcessInstanceJson, string frmData)
2017-02-06 18:28:36 +08:00
{
WFProcessInstance wfProcessInstanceEntity = wfProcessInstanceJson.ToObject<WFProcessInstance>();
wfProcessInstanceEntity.Id = Guid.Empty;
if (wfProcessInstanceEntity.EnabledMark == 1)//发起流程
{
_app.CreateInstance(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
}
else if (wfProcessInstanceEntity.EnabledMark == 3)//草稿
{
_app.CreateRoughdraft(Guid.NewGuid(), wfSchemeInfoId, wfProcessInstanceEntity, frmData);
}
2017-02-06 19:11:21 +08:00
return Result.ToJson();
2017-02-06 18:28:36 +08:00
}
/// <summary>
2017-02-06 19:11:21 +08:00
/// 审核流程
2017-02-06 18:28:36 +08:00
/// </summary>
2017-02-06 19:11:21 +08:00
/// <param name="processId">工作流实例主键Id</param>
/// <param name="verificationData">审核数据</param>
2017-02-06 18:28:36 +08:00
/// <returns></returns>
2017-02-06 19:11:21 +08:00
[HttpPost]
public string VerificationProcess(Guid processId, string verificationData)
2017-02-06 18:28:36 +08:00
{
2017-02-06 19:11:21 +08:00
_app.VerificationProcess(processId, verificationData);
return Result.ToJson();
2017-02-06 18:28:36 +08:00
}
2017-02-06 19:11:21 +08:00
2017-02-06 18:28:36 +08:00
/// <summary>
2017-02-06 19:11:21 +08:00
/// 删除申请
2017-02-06 18:28:36 +08:00
/// </summary>
2017-02-06 19:11:21 +08:00
public string Delete(Guid[] ids)
2017-02-06 18:28:36 +08:00
{
2017-02-06 19:11:21 +08:00
try
{
foreach (var id in ids)
{
_app.DeleteProcess(id);
}
return Result.ToJson();
}
catch (Exception e)
{
Result.Status = false;
Result.Message = e.Message;
return Result.ToJson();
}
2017-02-06 18:28:36 +08:00
}
2017-02-06 19:11:21 +08:00
#endregion
2017-02-06 18:28:36 +08:00
#region ()
2017-02-06 18:28:36 +08:00
/// <summary>
/// 获取进程模板Json
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetProcessSchemeJson(Guid keyValue)
{
var data = _app.GetProcessSchemeEntity(keyValue);
return Content(data.ToJson());
}
2017-02-06 19:11:21 +08:00
2017-02-06 18:28:36 +08:00
/// <summary>
/// 已办流程进度查看,根据当前访问人的权限查看表单内容
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetProcessSchemeEntityByUserId(Guid keyValue)
{
var data = _app.GetProcessSchemeByUserId(keyValue);
return Content(data.ToJson());
}
2017-02-06 19:11:21 +08:00
2017-02-06 18:28:36 +08:00
/// <summary>
/// 已办流程进度查看,根据当前节点的权限查看表单内容
/// </summary>
/// <param name="keyValue"></param>
/// <param name="isPermission"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetProcessSchemeEntityByNodeId(Guid keyValue, string nodeId)
{
var data = _app.GetProcessSchemeEntityByNodeId(keyValue, nodeId);
return Content(data.ToJson());
}
2017-02-06 19:11:21 +08:00
2017-02-06 18:28:36 +08:00
/// <summary>
/// 获取进程信息
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetProcessInfoJson(Guid keyValue)
{
var processInstance = _app.GetProcessInstanceEntity(keyValue);
var processScheme = _app.GetProcessSchemeEntity(processInstance.ProcessSchemeId);
var JsonData = new
{
processInstance = processInstance,
processScheme = processScheme
};
return Content(JsonData.ToJson());
}
2017-02-06 19:11:21 +08:00
2017-02-06 18:28:36 +08:00
/// <summary>
/// 获取进程实例
/// </summary>
/// <param name="keyValue"></param>
/// <returns></returns>
[HttpGet]
public ActionResult GetProcessInstanceJson(Guid keyValue)
{
var processInstance = _app.GetProcessInstanceEntity(keyValue);
return Content(processInstance.ToJson());
}
2017-02-06 19:11:21 +08:00
public string Load(string type, int pageCurrent = 1, int pageSize = 30)
2017-02-06 18:28:36 +08:00
{
2017-02-06 19:11:21 +08:00
return JsonHelper.Instance.Serialize(_app.Load(AuthUtil.GetCurrentUser().User.Id.ToString(), type, pageCurrent, pageSize));
2017-02-06 18:28:36 +08:00
}
2017-02-06 19:11:21 +08:00
#endregion ()
}
}