using APT.BaseData.Domain.Entities;
using APT.Infrastructure.Core;
using APT.Infrastructure.Api;
using APT.BaseData.Domain.ApiModel.PF;
using System;
using System.Linq.Expressions;
using System.Collections.Generic;
using APT.BaseData.Domain.Entities.FM;
namespace APT.BaseData.Domain.IServices.FM
{
public interface IFMFlowPermitService : ICommonService
{
///
/// 审核后执行动作
///
/// 送审单ID
/// 当前审批执行的动作
void AfterPermit(string id, int flowPermitStatus);
///
/// 審批流數據保存
///
/// 審批流程
bool UpdateApprove(T_PF_APPROVE model, Action action, Guid? APPROVE_ID = null);
///
/// 審批流驳回申请人
///
/// 審批流程
bool RejectApprove(Guid id, bool is_send_message, Action action);
///
/// 发布审批流 wyw 添加自定义条件
///
/// 表单id
bool SendApprove(Guid id, Action action, Expression> expression = null, bool isShowCode = true, string approveTaskName = "");
///
/// 发布审批流
///
/// 审批流编号
/// 审批流模板配置中的编号(例:PF001)
/// 审批流模板配置中的自定义参数
/// 审批流对应主表ID(DATA_ID)
/// 审批流对应 APPROVE_CODE(例:FO017_SHOWPRINT)审批流页面对应名称
/// 待办ID(传入需要结束的待办ID)
/// 是否需要发送通知
///
/// 审批流ID(主表如果有存传值进来 )
/// 审批用户(主表如果有存传值进来 )
/// 自定义审批流程人员信息
/// 自定义审批流程人员部门信息
/// 审批流名称
///
void InsertApprove(string serialCode, string fromCode, string param, Guid id, string approveCode, Guid? finishNoticeId, bool sendMessage, Action action, Guid? approveId = null, Guid? approveUserId = null, Dictionary dicApproveUser = null, Dictionary dicApproveDepartMentID = null, string NoticeCode = "", string taskSourceFormCode = "", Guid? operaterID = null, string approveTaskName = "", Enums.FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? BSOperateEnum = null, Guid? DATA_ID_LOG = null, Guid? DATA_ID_SUB = null, DateTime? dtTaskEnd = null, List listDataIdSub = null);
///
/// 发布审批流
///
/// 审批流编号
/// 审批流模板配置中的编号(例:PF001)
/// 审批流对应主表ID(DATA_ID)
/// 审批流对应 APPROVE_CODE(例:FO017_SHOWPRINT)点击时页面跳转配置项
/// 待办ID(传入需要结束的待办ID)
/// 是否需要发送通知
///
/// 审批流模板配置中的自定义参数
/// 审批流ID(主表如果有存传值进来 )
/// 审批用户(主表如果有存传值进来 )
///
void InsertApprove(List listSerialCode, string fromCode, List listID, string approveCode, Guid? finishNoticeId, bool isSendMessage, Action action, List listParam = null, List listApproveId = null, Guid? approveUserId = null, string taskSourceFormCode = "", Guid? operaterID = null);
///
/// 发布审批流 隐患上报
///
/// 审批流编号
/// 审批流模板配置中的编号(例:PF001)
/// 审批流对应主表ID(DATA_ID)
/// 审批流对应 APPROVE_CODE(例:FO017_SHOWPRINT)点击时页面跳转配置项
/// 待办ID(传入需要结束的待办ID)
/// 是否需要发送通知
///
/// 审批流模板配置中的自定义参数
/// 审批流ID(主表如果有存传值进来 )
/// 审批用户(主表如果有存传值进来 )
///
void InsertApproveRisk(List listSerialCode, string fromCode, List listID, string approveCode, Guid? finishNoticeId, bool isSendMessage, Action action, List listParam = null, List listApproveId = null, Guid? approveUserId = null, string taskSourceFormCode = "", Guid? operaterID = null, List ListDepIDNone = null, Enums.FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? iBSOperateEnum = null, Guid? RiskID = null, List listLevel = null, Dictionary> dicLevelSubID = null);
///
/// 获取流水码
///
/// 表单id
//string[] CreateGenSerial(int codeType, int count);
//#region 审批流回调接口
//#region BS
/////
///// 隐患上报 审核通过 给每个通知负责人发送通知
/////
/////
/////
//bool Notice(string id);
//#endregion
//#endregion
}
}