fix #I9J6WS 增加加签逻辑

This commit is contained in:
wintel
2024-09-22 21:22:18 +08:00
parent 02dbb87349
commit 68e6b46e55
6 changed files with 402 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Infrastructure;
using Microsoft.EntityFrameworkCore;
using OpenAuth.App.Interface;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using OpenAuth.Repository.Interface;
namespace OpenAuth.App
{
public class FlowApproverApp : BaseTreeApp<FlowApprover,OpenAuthDBContext>
{
/// <summary>
/// 加载列表
/// </summary>
public async Task<TableData> Load(QueryFlowApproverListReq request)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
{
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
var result = new TableData();
var objs = GetDataPrivilege("u");
if (!string.IsNullOrEmpty(request.key))
{
//增加筛选条件,如:
//objs = objs.Where(u => u.Name.Contains(request.key));
}
result.data = objs.OrderBy(u => u.Id)
.Skip((request.page - 1) * request.limit)
.Take(request.limit);
result.count =await objs.CountAsync();
return result;
}
public void Add(AddOrUpdateFlowApproverReq obj)
{
var loginContext = _auth.GetCurrentUser();
if (loginContext == null)
{
throw new CommonException("登录已过期", Define.INVALID_TOKEN);
}
//程序类型取入口应用的名称,可以根据自己需要调整
var addObj = obj.MapTo<FlowApprover>();
CaculateCascade(addObj);
addObj.CreateDate = DateTime.Now;
addObj.CreateUserId = loginContext.User.Id;
addObj.CreateUserName = loginContext.User.Name;
addObj.Name = addObj.Id;
Repository.Add(addObj);
}
public void Update(AddOrUpdateFlowApproverReq obj)
{
UnitWork.Update<FlowApprover>(u => u.Id == obj.Id, u => new FlowApprover
{
//todo:要修改的字段赋值
});
}
public FlowApproverApp(IUnitWork<OpenAuthDBContext> unitWork, IRepository<FlowApprover,OpenAuthDBContext> repository, IAuth auth) : base(unitWork, repository, auth)
{
}
}
}

View File

@@ -0,0 +1,82 @@
//------------------------------------------------------------------------------
// This code was generated by a CodeSmith Template.
//
// DO NOT MODIFY contents of this file. Changes to this
// file will be lost if the code is regenerated.
// Author:Yubao Li
//------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using OpenAuth.Repository.Core;
namespace OpenAuth.App.Request
{
/// <summary>
///
/// </summary>
public class AddOrUpdateFlowApproverReq
{
/// <summary>
///Id
/// </summary>
public string Id { get; set; }
/// <summary>
///加签原因
/// </summary>
public string Reason { get; set; }
/// <summary>
///审批人
/// </summary>
public string ApproverName { get; set; }
/// <summary>
///工作流实例Id
/// </summary>
public string InstanceId { get; set; }
/// <summary>
///审批意见
/// </summary>
public string VerifyComment { get; set; }
/// <summary>
///审批人ID
/// </summary>
public string ApproverId { get; set; }
/// <summary>
///类型0顺序1并行且2并行或
/// </summary>
public int ApproveType { get; set; }
/// <summary>
///父节点ID应对多次加签
/// </summary>
public string ParentId { get; set; }
/// <summary>
///审批日期
/// </summary>
public DateTime? VerifyDate { get; set; }
/// <summary>
///状态0未处理1通过2未通过3驳回
/// </summary>
public int Status { get; set; }
/// <summary>
///当前节点ID
/// </summary>
public string ActivityId { get; set; }
/// <summary>
///顺序号当类型为0时
/// </summary>
public int? OrderNo { get; set; }
}
}

View File

@@ -0,0 +1,7 @@
namespace OpenAuth.App.Request
{
public class QueryFlowApproverListReq : PageReq
{
}
}

View File

@@ -0,0 +1,120 @@
//------------------------------------------------------------------------------
// This code was generated by a CodeSmith Template.
//
// DO NOT MODIFY contents of this file. Changes to this
// file will be lost if the code is regenerated.
// Author:Yubao Li
//------------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using OpenAuth.Repository.Core;
namespace OpenAuth.Repository.Domain
{
/// <summary>
///
/// </summary>
[Table("FlowApprover")]
public class FlowApprover : TreeEntity
{
public FlowApprover()
{
this.Reason = "";
this.ApproverName = "";
this.InstanceId = "";
this.VerifyComment = "";
this.CascadeId = "";
this.ApproverId = "";
this.ApproveType = 0;
this.CreateDate = DateTime.Now;
this.CreateUserName = "";
this.ParentId = "";
this.VerifyDate = DateTime.Now;
this.Status = 0;
this.ActivityId = "";
this.OrderNo = 0;
this.CreateUserId = "";
}
/// <summary>
///加签原因
/// </summary>
[Description("加签原因")]
public string Reason { get; set; }
/// <summary>
///审批人
/// </summary>
[Description("审批人")]
public string ApproverName { get; set; }
/// <summary>
///工作流实例Id
/// </summary>
[Description("工作流实例Id")]
public string InstanceId { get; set; }
/// <summary>
///审批意见
/// </summary>
[Description("审批意见")]
public string VerifyComment { get; set; }
/// <summary>
///审批人ID
/// </summary>
[Description("审批人ID")]
public string ApproverId { get; set; }
/// <summary>
///类型0顺序1并行且2并行或
/// </summary>
[Description("类型0顺序1并行且2并行或")]
public int ApproveType { get; set; }
/// <summary>
///加签时间
/// </summary>
[Description("加签时间")]
public DateTime? CreateDate { get; set; }
/// <summary>
///加签人
/// </summary>
[Description("加签人")]
public string CreateUserName { get; set; }
/// <summary>
///审批日期
/// </summary>
[Description("审批日期")]
public DateTime? VerifyDate { get; set; }
/// <summary>
///状态0未处理1通过2未通过3驳回
/// </summary>
[Description("状态0未处理1通过2未通过3驳回")]
public int Status { get; set; }
/// <summary>
///当前节点ID
/// </summary>
[Description("当前节点ID")]
public string ActivityId { get; set; }
/// <summary>
///顺序号当类型为0时
/// </summary>
[Description("顺序号当类型为0时")]
public int? OrderNo { get; set; }
/// <summary>
///加签人Id
/// </summary>
[Description("加签人Id")]
public string CreateUserId { get; set; }
}
}

View File

@@ -112,6 +112,7 @@ namespace OpenAuth.Repository
public virtual DbSet<Category> Categories { get; set; }
public virtual DbSet<CategoryType> CategoryTypes { get; set; }
public virtual DbSet<FlowInstance> FlowInstances { get; set; }
public virtual DbSet<FlowApprover> FlowApprovers { get; set; }
public virtual DbSet<FlowInstanceOperationHistory> FlowInstanceOperationHistorys { get; set; }
public virtual DbSet<FlowInstanceTransitionHistory> FlowInstanceTransitionHistorys { get; set; }
public virtual DbSet<FlowScheme> FlowSchemes { get; set; }

View File

@@ -0,0 +1,113 @@
using System;
using System.Threading.Tasks;
using Infrastructure;
using Microsoft.AspNetCore.Mvc;
using OpenAuth.App;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.Repository.Domain;
namespace OpenAuth.WebApi.Controllers
{
/// <summary>
/// 加签接口
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
[ApiExplorerSettings(GroupName = "加签接口_FlowApprovers")]
public class FlowApproversController : ControllerBase
{
private readonly FlowApproverApp _app;
//获取详情
[HttpGet]
public Response<FlowApprover> Get(string id)
{
var result = new Response<FlowApprover>();
try
{
result.Result = _app.Get(id);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
//添加
[HttpPost]
public Response Add(AddOrUpdateFlowApproverReq obj)
{
var result = new Response();
try
{
_app.Add(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
//修改
[HttpPost]
public Response Update(AddOrUpdateFlowApproverReq obj)
{
var result = new Response();
try
{
_app.Update(obj);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
/// <summary>
/// 加载列表
/// </summary>
[HttpGet]
public async Task<TableData> Load([FromQuery]QueryFlowApproverListReq request)
{
return await _app.Load(request);
}
/// <summary>
/// 批量删除
/// </summary>
[HttpPost]
public Response Delete([FromBody]string[] ids)
{
var result = new Response();
try
{
_app.Delete(ids);
}
catch (Exception ex)
{
result.Code = 500;
result.Message = ex.InnerException?.Message ?? ex.Message;
}
return result;
}
public FlowApproversController(FlowApproverApp app)
{
_app = app;
}
}
}