297 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |