using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PMS.BusinessModels.Account;
using PMS.BusinessModels.MobileProblem;
using PMS.BusinessModels.Problem;
using PMS.EntityModels.Product;
namespace PMS.Interface.Problems
{
///
/// 问题查询接口
///
public interface IProjectProblems
{
///
/// 获取查询结果返回的json列表
///
/// 查询条件
/// 返回datagrid的json格式文件
string GetProjectListDataGridJson(QueryModel queryModel);
///
/// 获取查询结果返回的json列表
///
/// 查询条件
/// 返回datagrid的json格式文件
string GetProjectListDataGridJsonV2(QueryModel queryModel);
///
/// 获取待处理的问题列表json(左侧显示)显示不用控制权限?
///
/// 1:技术支持,2:研发显示
/// 页码
/// 行数
/// 返回datagrid的json
string GetNeedProccessProjectListJson(int type, string productid, string productModuleId, int page,int rows);
///
/// 受理问题(当前人员接收问题)
///
/// 问题ID
/// 用户ID
/// 用户名
/// 返回处理结果
bool ReceiveProblem(string id, string userid, string name);
///
/// 判断问题是否被他人受理
///
///
///
///
int IsReceive(string id, string userid);
///
/// 尝试使用新的人员受理该问题
///
/// 问题ID
/// 新用户ID
/// 新用户名
///
bool TryReceiveProblem(string id, string userid, string name);
///
/// 获取最近处理描述
///
///
///
ProblemDealMessage GetRecentlyDetail(string ProblemId);
///
/// 取消受理问题(清空受理信息)
///
/// 问题id
///
bool CancelReceiveProblem(string id,string PersonId);
///
/// 执行问题的处理
///
/// 处理对象模型
///
bool ExecuteProcessData(ProblemProcessModel model, out string message,UserInfo user);
///
/// 根据过程ID查询出详细信息
///
///
///
dynamic QueryProcessInfo(string pid);
///
/// 获取问题记录
///
///
///
EntityModels.Product.WTJLModel GetWTJLModel(string id);
///
/// 根据问题流程ID获取问题ID
///
///
///
string GetWTID(string Processid);
///
/// 登记问题时获取推送人
///
///
///
List GetPushPerson(string ProblemId);
///
/// 获取问题主流程
///
///
///
string GetMainProcess(string ProblemId);
///
/// 获取个人配置
///
///
///
NotefiyConfigInfo GetNotifyConfigInfoByUserId(string PersonId);
///
/// 撤销问题处理
///
///
///
int UndoProblem(string id);
///
/// 判断是否允许修改问题过程
///
///
///
///
string CheckUpdateProcess(string ProcessId, string UserId);
///
/// 修改问题过程
///
///
///
bool UpdateProblemProcess(WTJLGCModel model);
#region 查询问题数量
///
/// 查询未完成的问题数量
///
/// 用户id
/// 用户性质
/// 渠道id
/// 项目id
/// 机构id
/// 返回数据表,类型,数量字段
DataTable QueryNotFinishProblem(string uid, int userprop, string companyid, string projectid, string orgid);
///
/// 查询未完成的问题列表
///
/// 用户id
/// 用户性质
/// 渠道id
/// 项目id
/// 机构id
/// 未完成问题种类
/// 返回问题列表
string NotFinishProblemList(string uid, int userprop, string companyid, string projectid, string orgid, int Type, int page, int rows);
///
/// 查询渠道的问题数量
///
///
DataTable QueryCompanyProblemCount();
string AllProList(UserInfo userInfo);
///
/// 查询该渠道下所有机构统计数量
///
/// 渠道ID
///
DataTable QueryOrgProblemCount(string companyid);
///
/// 根据机构ID,查询该机构下人员提出的问题
///
/// 机构ID
///
DataTable QueryOrgPersonProblemCount(string orgid);
///
/// 我的相关问题数量
///
/// 当前登录人ID
///
DataTable QueryMyProblemList(string userid);
///
/// 常见问题top5
///
///
DataTable QueryOftenProblemList();
///
/// 查询问题所在流程
///
/// 当前人员性质
/// 所在渠道
/// 所在机构
/// 当前人员ID
///
DataTable QueryAllProblemStopWorkFlow(int personProp, string companyid, string orgid, string userid);
///
/// 获取问题记录
///
///
///
string GetProblemById(string id);
///
/// 判断是否处理过改问题
///
///
///
bool IsDealed(string id,string PersonId);
///
/// 判断问题能否处理
///
/// 问题id
///
///
bool IsConfirmClosing(string id, string PersonId);
///
/// 问题归类
///
///
///
bool DoClassifi(string id,string ClssID, int nature, UserInfo user);
DataTable CreateExcel(QueryModel model);
#endregion
#region 超时推送
///
/// 是否开启超时推送
///
///
///
bool GetIsOverTime(UserInfo user);
///
/// 受理超时推送
///
///
///
string GetAcceptOverTime(UserInfo user);
///
/// 处理超时推送
///
///
///
string GetDealOverTime(UserInfo user);
#endregion
#region 版本问题
///
/// 获取版本问题列表
///
/// 搜索项
/// 产品Id
/// 版本ID
///
///
///
string GetVersionProblem(string SearchText, string ProductId, string VersionId,string projectId, string AcceptedId, string sort, string order, int page, int rows);
///
/// 添加备注
///
///
///
string AddNotes(SubmitProblemFormModel model);
#endregion
}
}