d_sms_service/APT.MicroApi/APT.PF.WebApi/Controllers/Api/FlowInstanceController.cs
2024-10-28 13:45:58 +08:00

297 lines
8.3 KiB
C#

using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using APT.Infrastructure.Api;
namespace APT.PF.WebApiControllers.Api.PF
{
[Route("api/PF/FlowInstance")]
public class FlowInstanceController : APTApiController<T_PF_FLOW_INSTANCE>
{
IPFFlowService FlowService { get; set; }
public FlowInstanceController(IPFFlowService flowService)
{
this.FlowService = flowService;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("Entities")]
public JsonActionResult<IEnumerable<T_PF_FLOW_INSTANCE>> Entities([FromBody]KeywordFilter filter)
{
return WitEntities(null, filter);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
///
[HttpPost, Route("OrderEntities")]
public JsonActionResult<IEnumerable<T_PF_FLOW_INSTANCE>> OrderEntities([FromBody]KeywordFilter filter)
{
return WitOrderEntities(null, filter);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("Paged")]
public PagedActionResult<T_PF_FLOW_INSTANCE> Paged([FromBody]KeywordPageFilter pageFilter)
{
return WitPaged(null, pageFilter);
}
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("OrderPaged")]
public PagedActionResult<T_PF_FLOW_INSTANCE> OrderPaged([FromBody]KeywordPageFilter pageFilter)
{
return WitOrderPaged(null, pageFilter);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("Delete")]
public JsonActionResult<bool> Delete(string id)
{
return WitDelete(id);
}
/// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("Update")]
public JsonActionResult<bool> Update([FromBody]T_PF_FLOW_INSTANCE entity)
{
return WitUpdate(entity);
}
/// <summary>
/// 批量删除
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[HttpGet, Route("BatchDelete")]
public JsonActionResult<bool> BatchDelete(string ids)
{
return WitBatchDelete(ids);
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("Get")]
public JsonActionResult<T_PF_FLOW_INSTANCE> Get([FromBody] KeywordFilter filter)
{
return WitEntity(null, filter);
}
[HttpPost, Route("Add")]
public JsonActionResult<bool> Add([FromBody] JObject obj)
{
return SafeExecute<bool>(() =>
{
var org = this.GetEntity<T_FM_ORGANIZATION>(t => true);
if (org == null)
throw new Exception("设置组织");
T_FM_USER user = new T_FM_USER();
user.NAME = "测试" + DateTime.Now.ToString();
user.CODE = DateTime.Now.ToString();
user.ORG_ID = org.ID;
//var entityService = ServiceUtils.GetCommonService<T_FM_USER>();
this.AddEntity< T_FM_USER>(user);
var flowInstance = obj.ToObject<T_PF_FLOW_INSTANCE>();
SendFlowParam param = new SendFlowParam();
if (flowInstance.InstanceSchemeId != null)
param.FlowSchemeId = flowInstance.InstanceSchemeId.Value;
param.OrgId = flowInstance.ORG_ID;
param.EntityId = user.ID;
param.Description = flowInstance.Description;
this.FlowService.SendFlow<T_FM_USER>(param);
return true;
});
}
[HttpPost, Route("GetFlow")]
public JsonActionResult<FlowResponse> GetFlow([FromBody]KeywordFilter filter)
{
return SafeExecute<FlowResponse>(() =>
{
var flowService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IPFFlowService>();
return flowService.GetFlow(filter);
});
}
[HttpPost, Route("PermitFlow")]
public JsonActionResult<bool> PermitFlow([FromBody] VerificationReq request)
{
return SafeExecute<bool>(() =>
{
var fmFlowPermitService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IFMFlowPermitService>();
PermitFlowParam param = new PermitFlowParam();
if (!string.IsNullOrEmpty(request.FlowInstanceId))
param.FlowId = new Guid(request.FlowInstanceId);
else
throw new Exception("流程ID 不允许为空");
param.NodeRejectStep = request.NodeRejectStep;
param.Description = request.VerificationOpinion;
param.UserId = request.UserId;
param.UserName = request.UserName;
if (request.VerificationFinally == "3")
{
param.PermitStatus = (int)PPFlowPermitStatusEnum.;
}
else if (request.VerificationFinally == "2")//表示不同意
{
param.PermitStatus = (int)PPFlowPermitStatusEnum.;
}
else if (request.VerificationFinally == "1")//表示同意
{
param.PermitStatus = (int)PPFlowPermitStatusEnum.;
}
this.FlowService.PermitFlowSimple(param);
fmFlowPermitService.AfterPermit(param.FlowId.ToString(), param.PermitStatus);
return true;
});
}
[HttpPost, Route("PassFlowByBatch")]
public JsonActionResult<bool> PassFlowByBatch([FromBody] VerificationPassBatchReq request)
{
return SafeExecute<bool>(() =>
{
if (request == null || string.IsNullOrEmpty(request.Ids)) return false;
var arry = request.Ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (arry == null || arry.Length == 0) return false;
foreach(var item in arry)
{
PermitFlowParam param = new PermitFlowParam();
param.FlowId = new Guid(item);
param.Description = "批次审核通过";
param.UserId = request.UserId;
param.UserName = request.UserName;
param.PermitStatus = (int)PPFlowPermitStatusEnum.;
this.FlowService.PermitFlowSimple(param);
}
return true;
});
}
/// <summary>
/// 加载列表
/// </summary>
[HttpPost, Route("QueryFlowInstance")]
public PagedActionResult<T_PF_FLOW_INSTANCE> QueryFlowInstance([FromBody]KeywordPageFilter pageFilter)
{
return SafeGetPagedData<T_PF_FLOW_INSTANCE>(result =>
{
var flowService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IPFFlowService>();
var data= flowService.QueryFlowInstance(pageFilter);
result.Data = data.Items;
result.TotalCount = data.TotalCount;
});
}
/// <summary>
/// 查询操作日志
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetOperHistoryList")]
public JsonActionResult<IEnumerable<T_PF_FLOW_INSTANCE_OPER_HIS>> GetOperHistoryList([FromBody]KeywordFilter filter)
{
return SafeExecute<IEnumerable<T_PF_FLOW_INSTANCE_OPER_HIS>>(() =>
{
return this.GetOrderEntities<T_PF_FLOW_INSTANCE_OPER_HIS>(null, filter);
});
}
/// <summary>
/// 加载自定人员
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("LoadUser")]
public FlowLoadResult LoadUser([FromBody] KeywordFilter filter)
{
if (filter == null)
filter = new KeywordFilter();
var result = new FlowLoadResult();
var list = this.GetEntities<T_FM_USER>(null, filter).ToList();
result.count = list.Count;
result.data = list;
return result;
}
/// <summary>
/// 加载自定角色
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("LoadRole")]
public FlowLoadResult LoadRole([FromBody] KeywordFilter filter)
{
if (filter == null)
filter = new KeywordFilter();
var result = new FlowLoadResult();
var list = this.GetEntities<T_FM_ROLE>(null, filter).ToList();
result.count = list.Count;
result.data = list;
return result;
}
/// <summary>
/// 加载自定组织
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("LoadOrg")]
public FlowLoadResult LoadOrg([FromBody] KeywordFilter filter)
{
if (filter == null)
filter = new KeywordFilter();
var result = new FlowLoadResult();
var list = this.GetEntities<T_FM_ORGANIZATION>(null, filter).ToList();
result.count = list.Count;
result.data = list;
return result;
}
}
}